一、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));