PHP array_filter()函数的用法(附带实例)
在 PHP 程序中,array_filter() 函数可以按条件过滤数组成员,并返回由满足条件的成员组成的新数组。操作中,过滤条件由回调函数指定,此函数应返回 bool 类型的数据,返回 true 的成员会添加到新数组中。
array_filter() 函数的定义如下:
在下面的代码中,首先使用回调函数按值数据查找成员:
在下面的代码中,按键(索引)过滤数组成员,过滤条件是索引值为偶数的成员,代码执行结果和上例相同。
在下面的代码中,回调函数使用了两个参数,其中,参数一为成员的值,参数二为成员的键。
array_filter() 函数的定义如下:
array_filter(array $array[, callable $callback[, int $flag = 0]]) : array
- $array 是需要操作的原数组;
- $callback 是操作数组成员的回调函数,它应返回 bool 类型值;
- 不使用 $flag 参数(或 0)时,回调函数的参数表示成员的值;当 $flag 参数指定为 ARRAY_FILTER_USE_KEY(键)时,回调函数的参数表示成员的键;如果 $flag 使用 ARRAY_FILTER_USE_BOTH(键和值)时,回调函数应有两个参数,分别表示成员的值和键。
在下面的代码中,首先使用回调函数按值数据查找成员:
<?php $arr = range(1,5); print_r(array_filter($arr,function($v){return $v%2==1;})); ?>本例中,回调函数会判断成员的值是否为奇数,这样,返回的数据就是 1、3、5(保留原成员的键)。代码执行结果为:
Array([0] => 1 [2] => 3 [4] => 5)
在下面的代码中,按键(索引)过滤数组成员,过滤条件是索引值为偶数的成员,代码执行结果和上例相同。
<?php $arr = range(1, 5); $arr1 = array_filter($arr, function($k) { return $k % 2 == 0; }, ARRAY_FILTER_USE_KEY); print_r($arr1); ?>
在下面的代码中,回调函数使用了两个参数,其中,参数一为成员的值,参数二为成员的键。
<?php $arr = range(1, 5); $arr1 = array_filter($arr, function($v, $k) { return $k % 2 == 0; }, ARRAY_FILTER_USE_BOTH); print_r($arr1); ?>回调函数中返回了索引值为偶数的成员。代码执行结果与上例相同。