php嵌套检查数组键

时间:2018-04-21 04:17:38

标签: php arrays

我有一种情况,我想检查PHP数组中的2级密钥。所以我的代码目前看起来像......

    if(array_key_exists($needleBox, $haystack)) {
        if(array_key_exists($needle, $haystack[$needleBox])) {
            // do stuff with value attached to $needle
        }
    }

我首先检查包含针头的数组($needleBox),然后检查针头是否找到$needleBox

跳过$needleBox&的检查是否安全使用...

    if(array_key_exists($needle, $haystack[$needleBox])) {
        // do stuff with value attached to $needle
    }

或在一个if语句中检查两者,如...

    if(array_key_exists($needleBox, $haystack) && array_key_exists($needle, $haystack[$needleBox])) {
        // do stuff with value attached to $needle
    }

我认为第一种选择更为简洁。

1 个答案:

答案 0 :(得分:1)

为什么不使用isset。我更喜欢它.. issetarray_key_exists快得多。如果值为null,则BTW isset将返回false。

if (isset($haystack[$needleBox]) && isset($haystack[$needleBox][$needle])) {
     //code
}

EDIT同意@shawn advise

if (isset($haystack[$needleBox][$needle])) {
     //code
}