對於一個一維的php數組,如何清除其中值為空的元素呢?直接的辦法是foreach循環一下,一個個判斷排除。不過這個方法還是略顯復雜,下面分享一下今天看到的一個方法,很簡潔也是頭一次看到這種寫法的,記錄一下。
假設存在如下一個一維數組:
1 |
$array = array (0=> 'phpernote' ,1=> '' ,2=> 'com' ,3=> '' ); |
清除該數組中的空元素可以這么寫:
1 |
$array = array_filter ( $array ,create_function( '$v' , 'return !empty($v);' )); |
2 |
print_r( $array ); |
3 |
//輸出結果:Array ( [0] => phpernote [2] => com ); |
簡要分析一下以上代碼中兩個比較重要的函數:
array array_filter(array array,string function) 函數利用回調函數function過濾數組array中的元素,如果自定義過濾函數function返回 true,則被操作的數組array的當前值就會被包含在返回的結果數組中, 並將結果組成一個新的數組。如果原數組是一個關聯數組,鍵名保持不變。
string create_function(string $args,string $code) 創建一個匿名函數。