6.5.6 PHP使用回調函數處理數組的函數array_filter()
使用回調函數處理數組的函數
array_filter -- 用回調函數過濾數組中的單元
語法:rray array_filter ( array input [, callback callback] )
依次將 input 數組中的每個值傳遞到 callback 函數。如果 callback 函數返回 TRUE,則 input 數組的當前值會被包含在返回的結果數組中。數組的鍵名保留不變。
如果沒有提供 callback 函數,array_filter() 將刪除 input 中所有等值為 FALSE 的條目。
array_walk--對數組中的每個成員應用用戶函數
語法:bool array_walk ( array &array, callback funcname [, mixed userdata] )
如果成功則返回 TRUE,失敗則返回 FALSE。
將用戶自定義函數 funcname 應用到 array 數組中的每個單元。典型情況下 funcname 接受兩個參數。array 參數的值作為第一個,鍵名作為第二個。如果提供了可選參數 userdata,將被作為第三個參數傳遞給 callback funcname。
array_walk() 不會受到 array 內部數組指針的影響。array_walk() 會遍歷整個數組而不管指針的位置。
v:* {behavior:url(#default#VML);}o:* {behavior:url(#default#VML);}p:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}v:textbox {display:none;}
幻燈片 5
.O {font-size:149%;}
?array_map -- 將回調函數作用到給定數組的單元上
–語法: array array_map ( callback callback, array arr1 [, array ...] )
–array_map() 返回一個數組,該數組包含了 arr1 中的所有單元經過 callback作用過之后的單元。callback接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。
?
例test.php
<?php
// $lamp = array("os"=>"Linux", "webserver"=>"Apache","db"=>"MySQL", "language"=>"PHP");
$arr = array(1,2,3,-4,false,5,6,7,8,9,"",-1-2-3,4,null,-5-6-7-8, 0);
var_dump($arr);
echo '<br>';
var_dump(array_filter($arr));
function myfun($value) {
if($value >= 0)
return true;
else
return false;
}
var_dump(array_filter($arr, "myfun"));
var_dump( array_values( array_filter($arr, function($value){
return !($value%2==0);
}) ));