$data
是多维数组,此数组包含不同类型的值
number
、character
、float
、empty
、Boolean
这里我想过滤只是空的,但下面的函数过滤0,也为false,请建议一个快速解决方案。
$data = array_map('array_filter',$data);
$data = array_filter($data,function($a){return $a!='';});
以上两种样品均未完全满足要求。
array ('school'=>array('key1'=>abc,'key2'=>1,'key3'=>0,'key4'=>,'key5'=>false))
$data = array_filter($data,function($a){return ($a!=='' && is_null($a)===false );});
简单地尝试而不是$data
到$data['school']
$data['school'] = array_filter($data['school'], function($a) {
return $a != '';
});
使用自定义函数,因为本机php函数会将"0"answers"false"视为空:
function array_non_empty_items($input) {
// If it is an element, then just return it.
if (!is_array($input)) {
return $input;
}
$non_empty_items = array();
foreach ($input as $key => $value) {
// Ignore empty cells
if($value !== '') {
// Use recursion to evaluate cells.
$non_empty_items[$key] = array_non_empty_items($value);
}
}
// Finally returns the array without empty items.
return $non_empty_items;
}