我有一种情况,我想检查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
}
我认为第一种选择更为简洁。
答案 0 :(得分:1)
为什么不使用isset
。我更喜欢它.. isset
比array_key_exists
快得多。如果值为null,则BTW isset
将返回false。
if (isset($haystack[$needleBox]) && isset($haystack[$needleBox][$needle])) {
//code
}
EDIT同意@shawn advise
if (isset($haystack[$needleBox][$needle])) {
//code
}