array_filter()
用回調函數(shù)對數(shù)組進行過濾萌焰,返回由回調函數(shù)return true的當前數(shù)組元素構成的數(shù)組寝杖;
警告 :
回調函數(shù)不能夠傳遞引用參數(shù),達到修改數(shù)組鍵值的目的;
基礎語法:
array array_filter(array $array , callback $callback [, constant $flags = NULL])
array 返回數(shù)組十偶;
array $array 需要被過濾的原始數(shù)組蛛勉;
callback $callback 回調函數(shù)皿淋;可能的參數(shù)是 $val | $key [,$key];
constant $flags 確定傳遞給回調函數(shù)的實參的常量;
constant 可能的值:
NULL 傳遞的參數(shù)是鍵值仗嗦;
ARRAY_FILTER_USE_KEY; 傳遞的參數(shù)是 鍵名
ARRAY_FILTER_USE_BOTH; 傳遞的參數(shù)是鍵值 + 鍵名铲咨;
語法結構1:
array_filter(array $array ,callback $callback)
把數(shù)組的鍵值傳遞給回調函數(shù)摇天,返回過濾后的數(shù)組;
實例:
$a_int = range(1,10);
function filter_int_array($val){
if($val%2 == 0){
return true;
}
}
print_r(array_filter($a_int,'filter_int_array'));
#output : array(2,4,6,8,10);
語:法結構2:
array_filter(array $array,callback $callback,ARRAY_FILTER_USE_KAY);
把數(shù)組的鍵名傳遞給函數(shù)液南,返回 函數(shù)返回值是true的數(shù)組元素組成的數(shù)組咒钟;
實例:
$a_personal_name = array('bill','tom','jack','david',);
function filter_key($key){
if($key%2 == 0){
return true;
}
}
print_r(array_filter($a_personal_name , 'filter_key',ARRAY_FILTER_USE_KEY));
#output : array[0]=>'bill',([2]=> 'jack')
語法結構3:
array_filter(array $array , callback $callback ,ARRAY_FILTER_USE_BOTH);
把數(shù)組的鍵值和鍵名同時傳遞給callback $callback,當函數(shù)返回true是壤追,把當前數(shù)組元素復制給最終返回的數(shù)組;
實例:
$a_personal_age = array('bill'=>33,'tom'=>20,'jack'=>16,'david'=>25);
function get_people($val,$key){
if($val >18 && $key != 'bill'){
return true;
}
}
print_r(array_filter($a_personal_age,'get_people',ARRAY_FILTER_USE_BOTH));
#output : array('tom'=>20,'david'=>25)