在我們開發過程中,判斷數組為空時你會想到什么方法呢?首先想到的應該是empty函數,不過直接用empty函數判斷為空是不對的,因為當這個值是多維數的時候,empty結果是有值的.
其實我們可以利用array_filter函數輕松去掉多維空值,而數組的下標沒有改變,下面是舉例用法.
array_filter() 函數用回調函數過濾數組中的元素,如果自定義過濾函數返回 true,則被操作的數組的當前值就會被包含在返回的結果數組中,并將結果組成一個新的數組,如果原數組是一個關聯數組,鍵名保持不變,代碼如下:
- <?php
- $array = array(
- 0 => '霜天部落',
- 1 => false,
- 2 => 1,
- 3 => null,
- 4 => '',
- 5 => 'http://www.49028c.com',
- 6 => '0'
- );
- print_r(array_filter($array));
- ?>
上面代碼輸出結果為:
- Array
- (
- [0] => 霜天部落
- [2] => 1
- [5] => http://www.49028c.com
- )
這樣就把為空或者null或者false的值排除掉,上面我們再進行優化,代碼如下:
- function delEmpty($v)
- {
- if ($v==="" || $v==="php") //當數組中存在空值和php值時,換回false,也就是去掉該數組中的空值和php值
- {
- return false;
- }
- return true;
- }
- $a=array(0=>"pig",1=>"Cat",2=>"",3=>"php");
- print_r(array_filter($a,"delEmpty"));
新聞熱點
疑難解答