Php 检查数组中是否有与列表不匹配的键

Php 检查数组中是否有与列表不匹配的键,php,arrays,Php,Arrays,检查是否有与特定列表不匹配的数组键的最简单方法是什么 $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_arra

检查是否有与特定列表不匹配的数组键的最简单方法是什么

$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) {...}
这个怎么样

$count = isset($a['ignore_me']) ? count($a) -1 : count($a);
减1,如果找到了该键,则使用完整长度。

这个如何

$count = isset($a['ignore_me']) ? count($a) -1 : count($a);

如果找到该键,则使用减法1,否则使用完整长度。

使用标准函数的一种方法如下:

$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.
}

一种方法是使用标准函数,如下所示:

$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.
}
另一个解决方案是

另一个解决方案是


为此,您可以使用内置的数组函数:

$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!";
   }
?>

为此,您可以使用内置的数组函数:

$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!";
   }
?>

干:$count=count$a-isset$a['ignore_me'];干:$count=count$a-isset$a['ignore_me'];改变阵列,不能使用它:/Bad idea,此方法是破坏性的修改原始阵列,不能使用它:/Bad idea,此方法是破坏性的修改原始阵列对于这样一个相对简单的问题,可以看到所有这些不同的解决方案:@NDM就像FizzBuzz有很多解决方案一样;事实上,我没有通过一次在线PHP测试,因为我的解决方案太过非常规,系统无法理解,无法看到针对如此简单问题的所有不同解决方案:@NDM就像有很多解决方案可以解决FizzBuzz一样;实际上,我没有通过一次在线PHP测试,因为我的解决方案太过非常规,系统无法理解XD。但遗憾的是,这有点像是kolink答案的翻版。可读性差,而且还要为每个键定义值以供忽略:P但遗憾的是,这有点像kolink答案的翻版。可读性差,另外还要为每个要忽略的键定义值:p