6.5.6 PHP使用回調(diào)函數(shù)處理數(shù)組的函數(shù)array_filter()
使用回調(diào)函數(shù)處理數(shù)組的函數(shù)
array_filter -- 用回調(diào)函數(shù)過濾數(shù)組中的單元
語法:rray array_filter ( array input [, callback callback] )
依次將 input 數(shù)組中的每個(gè)值傳遞到 callback 函數(shù)。如果 callback 函數(shù)返回 TRUE,則 input 數(shù)組的當(dāng)前值會(huì)被包含在返回的結(jié)果數(shù)組中。數(shù)組的鍵名保留不變。
如果沒有提供 callback 函數(shù),array_filter() 將刪除 input 中所有等值為 FALSE 的條目。
array_walk--對(duì)數(shù)組中的每個(gè)成員應(yīng)用用戶函數(shù)
語法:bool array_walk ( array &array, callback funcname [, mixed userdata] )
如果成功則返回 TRUE,失敗則返回 FALSE。
將用戶自定義函數(shù) funcname 應(yīng)用到 array 數(shù)組中的每個(gè)單元。典型情況下 funcname 接受兩個(gè)參數(shù)。array 參數(shù)的值作為第一個(gè),鍵名作為第二個(gè)。如果提供了可選參數(shù) userdata,將被作為第三個(gè)參數(shù)傳遞給 callback funcname。
array_walk() 不會(huì)受到 array 內(nèi)部數(shù)組指針的影響。array_walk() 會(huì)遍歷整個(gè)數(shù)組而不管指針的位置。
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 -- 將回調(diào)函數(shù)作用到給定數(shù)組的單元上
–語法: array array_map ( callback callback, array arr1 [, array ...] )
–array_map() 返回一個(gè)數(shù)組,該數(shù)組包含了 arr1 中的所有單元經(jīng)過 callback作用過之后的單元。callback接受的參數(shù)數(shù)目應(yīng)該和傳遞給 array_map() 函數(shù)的數(shù)組數(shù)目一致。
?
例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);
}) ));