一、array_filter
array_filter ( array $array
[, callable $callback
[, int $flag
= 0 ]] ) : array
依次将 array
数组中的每个值传递到 callback
函数。
如果 callback
函数返回 true,则 array
数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
二、过滤数组空值的几种情况:
$arr = [0,1,2,'',false,'0','1',null];
//过滤数组中所有为空值的元素
var_dump(array_filter($arr));
//针对数组值进行过滤
var_dump(array_filter($arr, function($v) {
return $v == 1;
}));
//针对数组键进行过滤
var_dump(array_filter($arr, function($k) {
return $k == 1;
}, ARRAY_FILTER_USE_KEY));
//针对数组值、键进行过滤
var_dump(array_filter($arr, function($k, $v) {
return $k == 1 || $v == 2;
}, ARRAY_FILTER_USE_BOTH));
//过滤null '' false, 不过滤0
var_dump(array_filter($arr, 'strlen'));
三、
没发现什么问题,欢迎指正
$arr = [0,1,2,'',false,'0','1', null];
var_dump(array_filter($arr, function($k) use($arr) {
if ($k == 2) {
unset($arr[$k]);
} else {
return true;
}
}, ARRAY_FILTER_USE_KEY));