array_filter()——遍历数组的键值和键名,返回函数返回true的数组元素组成的新数组;

array_filter()
用回调函数对数组进行过滤,返回由回调函数return true的当前数组元素构成的数组;

警告
回调函数不能够传递引用参数,达到修改数组键值的目的;


基础语法:
array array_filter(array $array , callback $callback [, constant $flags = NULL])

array 返回数组;
array $array 需要被过滤的原始数组;
callback $callback 回调函数;可能的参数是 $val | $key [,$key];
constant $flags 确定传递给回调函数的实参的常量;

constant 可能的值:
NULL 传递的参数是键值;
ARRAY_FILTER_USE_KEY; 传递的参数是 键名
ARRAY_FILTER_USE_BOTH; 传递的参数是键值 + 键名;


语法结构1:
array_filter(array $array ,callback $callback)
把数组的键值传递给回调函数,返回过滤后的数组;

实例:

$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);

把数组的键名传递给函数,返回 函数返回值是true的数组元素组成的数组;

实例:

$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);
把数组的键值和键名同时传递给callback $callback,当函数返回true是,把当前数组元素复制给最终返回的数组;

实例:

$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)


你可能感兴趣的:(array_filter()——遍历数组的键值和键名,返回函数返回true的数组元素组成的新数组;)