如何在PHP中检查所有空值的关联数组?
这可能是一个非常微不足道的问题,但请耐心等待。
我正在尝试将大量数据读入关联数组的数组中。 数据包含很多空数组和数组,其中键被设置,但是都是空值。 我想忽略这些,只有至less有一个键映射到一个非空值的数组。 (这些数据来自excel工作表,它有很多空单元,无论如何都被注册为“set”)。到目前为止,我已经尝试过:
如果(!空($ {$ small_dummy}))
array_push($ {$ big_dummy},$ {$ small_dummy});
这摆脱了空数组,但不是那些所有键映射到null的数组。 有没有更好的方法来做到这一点,而不是循环遍历整个数组,并popup所有的空值?
通过你已经有的代码来判断,你可以改变:
if(!empty(${$small_dummy}))
至:
if(!empty(array_filter(${$small_dummy})))
这将过滤掉所有的空值(值精确到FALSE
)并检查结果数组是否为空。 另请参阅array_filter()
上的手册。
请注意,这也会过滤0
值,因此您可能需要为array_filter()
编写自定义callback函数。
你可以尝试如果(!array_filter($ array)){也
这不是一个理想的方法,但是如果所有的值都不能转换为数字值, array_sum
将返回0。 所以:
$small_dummy = array("a" => null, "foo", "", 0); if(array_sum($small_dummy) === 0)
会通过。 但是,如果您期望值是数值,那么这只是要走的路。
实际上,如果问题是数组键有值,因此没有传递为empty()
,去与array_values
:
if(!empty(array_values(${$small_dummy})))