检查数组是否有多个键

时间:2013-04-29 16:01:17

标签: php

如果数组中存在多个键,而不是多次使用array_key_exists函数,是否可以一次性检查?或者,这可以通过另一种方式实现吗?

<?php
$search_array = array('first' => 1, 'second' => 4);

if(array_key_exists('first','second' $search_array))//Do something like this. 
{
    echo "The 'first' element is in the array";
}
?>

3 个答案:

答案 0 :(得分:5)

如果你需要验证很多变量,这个函数非常好用:

http://php.net/manual/en/function.array-key-exists.php manhon824 at gmail dot com首先注意

<?php
function array_key_exists_r($keys, $search_r) {
    $keys_r = split('\|',$keys);
    foreach($keys_r as $key)
    if(!array_key_exists($key,$search_r))
    return false;
    return true;
}
?>

e.g.

<?php
if(array_key_exists_r('login|user|passwd',$_GET)) {
// login
} else {
// other
}
?>

http://php.net/manual/en/function.array-key-exists.php

manhon824 at gmail dot com首先注意

更改了您的代码,如上例

答案 1 :(得分:2)

不是一个开箱即用的功能,Samitha Hewawasam的解决方案有充分的评论。

if(array_key_exists_r('first|second',$search_array)) {
    // searching for items in array
} else {
    // other
}

这应该会帮助你。它将搜索由管道分隔的物品(|) 我从http://php.net/manual/en/function.array-key-exists.php

中提取此内容

答案 2 :(得分:1)

function keysInArray ($array, $keys) {
    foreach ($keys as $key)
        if (!array_key_exists($key, $array))
            return false; // failure, if any key doesn't exist
    return true; // else true; it hasn't failed yet
}

并将其命名为:

if (keysInArray($searchArray, array("key1", "key2", /*...*/))) { /* ... */ }

是的,你必须使用多次检查(例如在循环中);没有一体化功能。