PHP:检查多维关联数组中的值是否等于某种东西的简洁方法

时间:2012-01-20 00:53:44

标签: php variables multidimensional-array

我正试图找到一种干净的方法来检查动态定义的值是否为某个值。如果该变量等于被测试的变量,它应该评估为真,如果它不匹配或者变量不存在则为false,例如:

if($array[$with][$some][$depth]==$test)

这将正确评估,但它会抛出通知错误if $array[$with][$some][$depth]实际上不是变量。

我无法做到

if(array_key_exists($depth, $array[$with][$some]) && $array[$with][$some][$depth]==$test)

因为上层数组可能不存在(可能有任意数量的级别)

1 个答案:

答案 0 :(得分:1)

只需使用isset作为后卫。您不需要一步一步地执行此操作:

if(!isset($array[$with][$some][$depth]) || $array[$with][$some][$depth]!=$test) {
    // either does not exist, or has other value
}

此处唯一的缺点是,如果您要测试的值为nullisset将返回false,这不是您想要的。