說來慚愧,以前在去掉數組的空值是都是強寫foreach或者while的,利用這兩個語法結構來刪除數組中的空元素,簡單代碼如下:
<?php foreach($arr as $k=>$v){ if(!$v) unset($arr[$k]); }
事實證明如果數組過大的情況下這樣處理的效率並不高。因為foreach是將當前操作的數組進行copy,每操作一下foreach,都是copy了一個變量,頁面裡面如果有太多的foreach,會是一個很大的消耗。
在網上閒逛的時候,看到人有提示用array_filter,於是打開手冊看了一下,發現自己一直就守著個寶山卻不知道如何使用。
array_filter函數的功能是利用回調函數來對數組進行過濾,如果沒有回調函數,那麼默認就是刪除數組中值為false的項目。如下示例:
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => NULL, 4 => '' ); print_r(array_filter($entry));
輸出值為:
Array
(
[0] => foo
[2] => -1
)
建議:PHP裡面最重要的兩章應該就是數組操作和字符串操作,這兩章裡面的函數都必須要熟練,其他的就等用的時候再查吧。