php對數組的操做已經很完善了,提供給咱們不少內置函數用以操做數組,其實能夠用array_filter函數對PHP數組中的控制進行過濾php
array_filter() 函數用回調函數過濾數組中的值。該函數把輸入數組中的每一個鍵值傳給回調函數。若是回調函數返回 true,則把輸入數組中的當前鍵值返回結果數組中。數組鍵名保持不變數組
其中有個小關鍵點:If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed. 若是沒有給出回調函數,全部的等於 FALSE 的元素將會被移除掉,咱們能夠輕鬆的利用這個函數去除一維數組中的空值函數
$array = [
0 => '啦啦啦啦',
1 => 123,
2 => false,
3 => 'www.tongzhuo100.com',
4 => null,
5 => '',
];spa
print_r(array_filter($array));rem
結果爲:input
Array
(
[0] => 啦啦啦啦
[1] => 123
[3] => www.tongzhuo100.com
)回調函數
同時咱們也能夠利用array_filter() 去除二維數組中的空值io
$array = [
['name'=>'asd'],
['name'=>''],
['name'=>'asd'],
['name'=>''],
];function
$array = array_filter($array, function ($v) {
return $v['name'];
});方法
print_r($array);
結果爲:
Array
(
[0] => Array
(
[name] => asd
)
[2] => Array
(
[name] => asd
)
)
但我的以爲此方法仍是有一個缺陷,就是 $v['name'] 這種寫法註定了一個方法只能處理一個數組,若是數組內容發生變化或要求過濾的字段改變就只能從新寫一個方法了,代碼重用性不好,有沒有更好的辦法,你們互相分享一下