使用PHP从数组中删除空白条目
如果您有一个要从中删除任何空数据项的数组,则可以使用以下函数。它将创建一个新数组,并且仅在现有数组中包含值的项目之间进行复制。如果值是一个数组,则函数将调用自身并确保返回的数组包含某些内容,然后再将其添加到新数组中。
function array_purge_empty($arr) { $newarr = array(); foreach ($arr as $key => $val) { if (is_array($val)) { $val = array_purge_empty($val); //结果数组是否包含任何内容? if (count($val) != 0) { $newarr[$key] = $val; } } else { if (trim($val) != "") { $newarr[$key] = $val; } } } return $newarr; }
这是功能的一个例子。
//创建一个数组,其中包含一些空项目。 $array = array('a','b'=>'',3,0,' ',NULL,'',array(),array(1),4); //打印阵列 echo ''.print_r($array,true).''; //array_purge_empty()函数的打印结果 echo ''.print_r(array_purge_empty($array),true).'';
这将产生以下输出。
Array ( [0] => a [b] => [1] => 3 [2] => 0 [3] => [4] => [5] => [6] => Array ( ) [7] => Array ( [0] => 1 ) [8] => 4 ) Array ( [0] => a [1] => 3 [2] => 0 [7] => Array ( [0] => 1 ) [8] => 4 )
当然,更简单的解决方案可能是使用PHP函数array_filter(),该函数将删除所有错误条目。此外,如果此函数不能完全获取您要捕获的所有条目,则可以将函数回调作为第二个参数包括在内,这将允许您优化对数组进行的过滤。但是,该array_filter()函数不是递归的,因此我创建了上面的函数以提供递归数组过滤功能。