我目前正在使用以下内容:
$a = array('foo' => 'bar', 'bar' => 'foo');
if(isset($a['foo']) && isset($a['bar'])){
echo 'all exist';
}
但是,我必须检查多个数组密钥,而不是foo
和bar
。检查每个必需的密钥是否比为每个必需的条目添加isset
更有效?
答案 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表示一个或多个失败。