首先,看php官網的說明:
array_filter 用回呼函數過濾數組中的單元
(PHP 4 >= 4.0.6, PHP 5)
array_filter — Filters elements of an array using a callback function Report a bug Description array array_filter ( array $input [, callable $callback = "" ] )
Iterates over each value in the input array passing them to the callback function. If the callback function returns true, the current value from input is returned into the result array. Array keys are preserved. 例子1:
<?phpfunction func_odd($var){ // returns whether the input integer is odd return($var & 1);}function even($var){ // returns whether the input integer is even return(!($var & 1));}$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, "func_odd"));//回呼函數echo "Even:\n";print_r(array_filter($array2, "even"));?>
結果:注意數組實際下標並沒有改變。
例子2:
$arr = array("a","b","c","d");
去除$arr裡的b值;
$arr = array("a","b","c","d");function isHave($var){ if($var!="b") return true;}array_filter($arr,"isHave");