如何检查是否存在多个数组键


How can I check if multiple array keys exist?

有没有更简单、更聪明、更清晰的方法来写这篇文章?

if (array_key_exists("name", $array) AND array_key_exists("age", $array) AND array_key_exists("size", $array) AND array_key_exists("gender", $array) {
    echo "Keys exist!";
}

简单使用isset(),一种语言构造。

语言构造比函数快得多。

<?php
$findKeys = array('name', 'age', 'size', 'gender');
if (! empty($findKeys) && ! empty($array)) {
    foreach ($findKeys as $findKey) {
        if (isset($array[$findKey])) {
            echo 'Keys exist!';
        }
    }
}

解释:

1) 创建一个由4个需要查找的键组成的数组。

2) 在这个数组上循环,并使用isset()来确定键(元素)是否存在。

你可以这样做:

<?php
$array = array(
    'index1'=>'value1',
    'index2'=>'value2',
    'index3'=>'value3'
);
$indexesToSearch = array('index1', 'index2');
if(count(array_intersect(array_keys($array), $indexesToSearch)) == count($indexesToSearch))
{
    // ... do something
}

use也可以使用这种方式。。

<?php
function array_keys_exist($keys, $array){
    foreach($keys as $key){
        if(!isset($array[$key]))return false;
    }
    return true;
}
?>