|
array_filter (PHP 4 >= 4.0.6, PHP 5) array_filter --
用回呼函數過濾陣列中的單元
說明array array_filter ( array input [, callback callback] )
array_filter() 依次將
input 陣列中的每個值傳遞到
callback 函數。若果
callback 函數返回 TRUE,則
input
陣列的現用的值會被包括在返回的結果陣列中。陣列的鍵名保留不變。
例子 1. array_filter() 例子
<?php function odd($var) { return($var % 2 == 1); }
function even($var) { return($var % 2 == 0); }
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); $array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n"; print_r(array_filter($array1, "odd")); echo "Even:\n"; print_r(array_filter($array2, "even")); ?>
|
上例將輸出:
Odd : Array ( [a] => 1 [c] => 3 [e] => 5 ) Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
|
|
會員不應在回呼函數中修改陣列本身。例如增加/移除單元或是對
array_filter() 正在作用的陣列進行
unset。若果陣列改變了,此函數的行為沒有定義。
若果沒有提供 callback
函數,array_filter()
將移除 input 中所有等值為
FALSE 的條目。更多訊息見轉換為布林值。
例子 2. array_filter() 無
callback
<?php
$entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' );
print_r(array_filter($entry)); ?>
|
上例將輸出: Array
(
[0] => foo
[2] => -1
) |
|
參見 array_map(),array_reduce()
和 array_walk()。
| |