!数组键的empty()会显示“0”和NULL的值

时间:2017-05-31 17:49:29

标签: php arrays

我有一个包含键和值的数组。始终设置密钥,值可能为“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的键不会添加到此数组中。

为什么将这些键添加到新阵列的任何想法?非常感谢:)

1 个答案:

答案 0 :(得分:3)

这不能回答为什么它不能正常工作,但看起来你应该只能使用array_filter。

$relevantInfoArray = array_filter($allInfoArray);