array_filter - 用回調函數過濾數組中的元素php
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次將 array 數組中的每一個值傳遞到 callback 函數。若是 callback 函數返回 TRUE,則 array 數組的當前值會被包含在返回的結果數組中。
數組的鍵名保留不變。
若是沒有提供 callback 函數, 將刪除 array 中全部等值爲 FALSE 的元素。
參數 flag 決定callback接收的參數形式:
ARRAY_FILTER_USE_KEY
- 接受鍵名做爲的惟一參數
ARRAY_FILTER_USE_BOTH
- 同時接受鍵名和鍵值數組
<?php function even($var) { // returns whether the input integer is even return(!($var & 1)); } $array = array(6, 7, 8, 9, 10, 11, 12); echo "Even:\n"; print_r(array_filter($array, "even")); ?>
將輸出:函數
Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
不使用回調函數code
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' ); print_r(array_filter($entry)); ?>
將輸出:input
Array ( [0] => foo [2] => -1 )