PHP数组函数array_filter(⽤回调函数过滤数组中的元素)    函数语法:
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
函数参数说明:
array_filter() 函数使⽤回调函数过滤数组中的元素。该函数依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变。如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的元素。
举例1,过滤数组(不指定callback和flag):
<?php
// 定义数组
$arr = ['a' => 0, 'b' => 1, 'c' => 2, 'd' => 3];
// 如果没有提供 callback 函数,将删除 array 中所有等值为 FALSE 的条⽬。
$res = array_filter($arr);filter过滤对象数组
var_dump($res);
以上代码输出如下:
array (size=3)
'b' => int 1
'c' => int 2
'd' => int 3
举例2,过滤数组(指定callback且callback 接受键名作为的唯⼀参数):
<?php
// 定义数组
$arr = ['a' => 0, 'b' => 1, 'c' => 2, 'd' => 3];
function filterkey($k)
{
return $k != 'b';
}
// 指定callback且callback 接受键名作为的唯⼀参数
$res = array_filter($arr, 'filterkey', ARRAY_FILTER_USE_KEY);
var_dump($res);
以上代码输出如下(过滤key为b的数组元素):
array (size=3)
'a' => int 0
'c' => int 2
'd' => int 3
举例3,过滤数组(指定callback且callback 接受接受键名和键值):
<?php
// 定义数组
$arr = array('a' => 0, 'b' => 1, 'c' => 2, 'd' => 3);
// 注意回调函数的参数为值,键
function filterboth($v, $k)
{
return $v > 1;
}
// 指定callback且callback 接受受键名和键值
$res = array_filter($arr, 'filterboth', ARRAY_FILTER_USE_BOTH);
var_dump($res);
以上代码输出如下(过滤value⼤于1的数组元素):
array (size=2)
'c' => int 2
'd' => int 3
注意:
当回调函数接受键/值作为参数时,第⼀个参数为值,第⼆个参数为key

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。