array_filter

array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter — 用回调函数过滤数组中的单元

说明

array array_filter ( array $input [, callable $callback = "" ] )

依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE ,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

参数

 

input

要循环的数组

callback

使用的回调函数

如果没有提供 callback 函数, 将删除 input 中所有等值为 FALSE 的条目。更多信息见转换为布尔值

返回值

返回过滤后的数组。

范例

 

Example #1 array_filter() 例子

 1 <?php
 2 function  odd ( $var )
 3 {
 4      // returns whether the input integer is odd
 5      return( $var  &  1 );
 6 }
 7 
 8 function  even ( $var )
 9 {
10      // returns whether the input integer is even
11      return(!( $var  &  1 ));
12 }
13 
14 $array1  = array( "a" => 1 ,  "b" => 2 ,  "c" => 3 ,  "d" => 4 ,  "e" => 5 );
15 $array2  = array( 6 ,  7 ,  8 ,  9 ,  10 ,  11 ,  12 );
16 
17 echo  "Odd :
" ;
18 print_r ( array_filter ( $array1 ,  "odd" ));
19 echo  "Even:
" ;
20 print_r ( array_filter ( $array2 ,  "even" ));
21 ?>

以上例程会输出:

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Example #2 array_filter()callback

 1 <?php
 2 
 3 $entry  = array(
 4               0  =>  'foo' ,
 5               1  =>  false ,
 6               2  => - 1 ,
 7               3  =>  null ,
 8               4  =>  ''
 9            );
10 
11 print_r ( array_filter ( $entry ));
12 ?>

以上例程会输出:

Array
(
    [0] => foo
    [2] => -1
)

注释

Caution

用户不应在回调函数中修改数组本身。例如增加/删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了,此函数的行为将不可预测。

参见

 

  • array_map() - 将回调函数作用到给定数组的单元上
  • array_reduce() - 用回调函数迭代地将数组简化为单一的值
  • array_walk() - 对数组中的每个成员应用用户函数
原文地址:https://www.cnblogs.com/haidong/p/4371931.html