如果我知道数组是如何构造的,这可能会更干净,但是,假设您可以在数组中同时包含空字符串或空值,并且您想要考虑 0 的值 --> 这就是我想要的做:
if (is_null($array[$key]) || (string)$array[$key] == '')
这是一些测试代码,显示了它与一个同时具有 0、null、空字符串和非零整数的数组的作用......
$array = array(0,1,null,2,'');
print_r($array);
foreach ($array as $key => $val) {
if (is_null($array[$key]) || (string)$array[$key] == '') {
echo $key.", true\n";
}
}
至于使用 isset() - 考虑设置一个空字符串。这可能是您遇到的情况(除了 0 被认为是空的)与此用法比较:
$foo = array(0,1,null,2,'');
print_r($foo);
foreach ($foo as $key => $val) {
if (isset($foo[$key])) {
echo $key.", true\n";
}
}