我有一个包含键和值的数组。始终设置密钥,值可能为“0”或NULL。我想做的事:将所有具有值的键值对添加到新数组中。我为此使用了!empty()
。
问题是:这个循环还为新数组添加了包含NULL或“0”的键。
这是我的代码:
// Loop over array and find all vars which are not empty
$i = 0;
foreach ($allInfoArray as $aKey=>$aVal) {
if (!empty($aKey[$i])) {
$relevantInfoArray[$aKey] = $aVal;
}
$i++;
}
之后我使用var_dump()
检查新阵列。
array(11) { ["Key1"]=> string(3) "yes" ["Key2"]=> string(4) "1010" ["Key3"]=> string(4) "DED1" ["Key4"]=> string(7) "1234567" ["Group"]=> string(0) "" ["Dim"]=> string(0) "" ["Grd"]=> string(0) "" ["Nrm"]=> string(0) "" ["Flmc"]=> NULL ["Trmc"]=> NULL ["TrDim"]=> string(0) "" }
如您所见,最后的值都是0或NULL。这似乎也是随机发生的,其他值为NULL或0的键不会添加到此数组中。
为什么将这些键添加到新阵列的任何想法?非常感谢:)
答案 0 :(得分:3)
这不能回答为什么它不能正常工作,但看起来你应该只能使用array_filter。
$relevantInfoArray = array_filter($allInfoArray);