检查某个数组键是否与特定列表不匹配的最简单方法是什么?
$a = array(
[ignore_me] => "blah blah blah",
[name] => "Don"
);
does_array_have_non_ignored_entries($a); // returns true
我可以想到很多方法来编写这个函数,不知道PHP是否有快速解决方案。我最好的就是:
$length = count($a);
$ignored_entry = (in_array($a, 'ignore_me') ? 1 : 0;
if ($length - $ignored_entry > 0) {...}
答案 0 :(得分:2)
使用标准功能的一种方法如下:
$ignored_keys = array("ignore_me"); // can be extended to ignore several keys
$diff = array_diff_key($array,array_flip($ignored_keys));
if( $diff) {
// there are keys that weren't ignored.
}
答案 1 :(得分:1)
这个怎么样?
$count = isset($a['ignore_me']) ? count($a) -1 : count($a);
减去1,如果找到该键,否则使用全长。
答案 2 :(得分:1)
另一个解决方案是array_diff_key
function
$count = count(array_diff_key(array('ignore_me'=>null), $a)));
答案 3 :(得分:0)
foreach($a as $key => $row)
{
if($key == 'ignore_me')
{
unset($array[$key]);
}
}
$count = count($array);
答案 4 :(得分:0)
为此,您可以在构建函数中使用数组:
$a = array(
[ignore_me] => "blah blah blah",
[name] => "Don"
);
if (array_key_exists("ignore_me",$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
?>