检查关联数组中的给定键是否具有值

时间:2021-03-03 08:27:09

标签: php

假设我有一个这样的数组:

$Data = array(
    'User1' => array(
        'FirstName'  => 'John',
        'MiddleName' => '',
        'LastName'   => 'Doe',
    ),
    'User2' => array(
        'FirstName'  => 'John',
        'MiddleName' => '',
        'LastName'   => 'Smith',
    ),
);

我想检查一下,数组中是否没有数据集具有 MiddleName 的值。
我想问一下,PHP中是否有内置函数/单行程序来做这样的事情:

IF( AllEmpty($Data["MiddleName"]) ) { Do something }

非常感谢!

2 个答案:

答案 0 :(得分:0)

如果你坚持单线,可以这样做:

if (!array_filter(array_column($Data, 'MiddleName'))) {
    echo 'Nothing here';
}

工作原理:

  • array_column 获取 'MiddleName' 的所有值作为数组 ['', '']
  • array_filter(不带任何附加参数)返回一个删除了任何假值的数组,结果是一个空数组,因为空字符串被认为是假的
  • 因为空数组本身就是假的,所以我们否定表达式以便满足条件(如果我们想显式,它也可以写成array_filter(array_column($Data, 'MiddleName')) === [],甚至可以写成empty(array_filter...)< /li>

答案 1 :(得分:0)

使用循环检查每个元素

foreach($Data as $x => $value) {
  if(!middlename_check($value['MiddleName'])){
    echo 'MiddleName is empty!';
  }
  // Do something
}

function middlename_check($middlename) {
  if($middlename != '') {
    return true;
  }
  return false;
}
相关问题