如果数组中存在多个键,而不是多次使用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";
}
?>
答案 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", /*...*/))) { /* ... */ }
是的,你必须使用多次检查(例如在循环中);没有一体化功能。