检查是否存在所有多个PHP数组键

时间:2013-06-07 01:03:42

标签: php arrays

我目前正在使用以下内容:

    $a = array('foo' => 'bar', 'bar' => 'foo');

    if(isset($a['foo']) && isset($a['bar'])){
      echo 'all exist';
    }

但是,我必须检查多个数组密钥,而不是foobar。检查每个必需的密钥是否比为每个必需的条目添加isset更有效?

2 个答案:

答案 0 :(得分:23)

您可以在一次isset()电话中将它们合并:

if (isset($a['foo'], $a['bar']) {
    echo 'all exist';
}

如果您拥有所需的所有密钥数组,则可以执行以下操作:

if (count(array_diff($required_keys, array_keys($a))) == 0) {
    echo 'all exist';
}

答案 1 :(得分:1)

您可以创建一个包含要检查的所有条目的数组,然后遍历所有条目。

$entries = array("foo", "bar", "baz");
$allPassed = true;

foreach($entries as $entry)
{
    if( !isset( $a[$entry] ) )
    {
        $allPassed = false;
        break;
    }
}

如果$ allPassed = true,则一切都很好 - false表示一个或多个失败。