3

如果数组中存在多个键,是否可以一次性检查,而不是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";
}
?>
4

3 回答 3

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 第一注

像上面的例子一样改变了你的代码

于 2013-04-29T16:06:48.107 回答
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中提取

于 2013-04-29T16:04:54.253 回答
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", /*...*/))) { /* ... */ }

是的,您必须使用多项检查(例如在循环中);不存在多合一功能。

于 2013-04-29T16:03:37.517 回答