Php 在数组筛选器中,如何使系统允许0
Php 在数组筛选器中,如何使系统允许0,php,arrays,Php,Arrays,$data是多维数组,此数组包含不同类型的值 数字,字符,浮点,空,布尔 这里我只想过滤空,但下面的函数过滤0,以及假,请建议一个快速解决方案请 $data = array_map('array_filter',$data); $data = array_filter($data,function($a){return $a!='';}); 以上两个样品均未完全满足要求 array ('school'=>array('key1'=>abc,'key2'=>1,'key3'=
$data
是多维数组,此数组包含不同类型的值
数字
,字符
,浮点
,空
,布尔
这里我只想过滤空,但下面的函数过滤0,以及假,请建议一个快速解决方案请
$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
改为$data['school']
$data['school'] = array_filter($data['school'], function($a) {
return $a != '';
});
使用自定义函数,因为本机php函数将“0”和“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;
}
小心
=代码>和==代码>你能给我看看你的数组吗?试试$myarray=array\u filter($myarray,'strlen')代码>附加样本array@ChetanAmeta将整个数组返回为空您使用三元组(!==)是正确的,但看起来他也想删除NULL。也许我错了,但是“key4”似乎是这里的目标。我也添加了检查null的功能,自从我回答这个问题后,对主帖子进行了大量的编辑
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;
}