php 筛选数组,php根据某一元素值进行数组过滤(筛选)

这里的案例是过滤的二维数组,一维数组的话。。相信你看懂了下面示例的这个二维数组过滤。。一维数组更是不在话下了。。所以一维数组就不示例了。。

PHP按照某一元素值进行数组过滤,除了常用的遍历以外 我们可以用array_filter()函数实现,下面看示例$arr = array(

0 => array('name' => '乔峰' , 'age' => 22,'trick' => '降龙十八掌'),

1 => array('name' => '杨过' , 'age' => 26,'trick' => '九阴真经'),

2 => array('name' => '张无忌','age' => 22,'trick' => '乾坤大挪移'),

);

//方式1 array_filter函数的第二个参数 直接写回调函数 function($variable){}

$res = array_filter($arr,function($element){

return $element['age'] == 22;  //只保留$arr数组中的age元素为22的数组元素

});

var_dump($res); //输出结果如下:

array (size=2)

0 =>

array (size=3)

'name' => string '乔峰' (length=6)

'age' => int 22

'trick' => string '降龙十八掌' (length=15)

2 =>

array (size=3)

'name' => string '张无忌' (length=9)

'age' => int 22

'trick' => string '乾坤大挪移' (length=15)

//方式2 先定义一个函数 然后将函数传给array_filter()的第二个参数

function fun_callback($element)

{

//只保留array_filter()函数的第一个参数(第一个参数肯定是数组啦。)中的age元素为22的数组元素

return $element['age'] == 22;

}

$res = array_filter($arr,'fun_callback');

var_dump($res); //输出结果如下:

array (size=2)

0 =>

array (size=3)

'name' => string '乔峰' (length=6)

'age' => int 22

'trick' => string '降龙十八掌' (length=15)

2 =>

array (size=3)

'name' => string '张无忌' (length=9)

'age' => int 22

'trick' => string '乾坤大挪移' (length=15)

以上两种写法方式都是可以的。。 为了防止有些人看不懂。。就都写出来吧。。 更多细节请参看手册。。

PS:array_filter($arr); 可以过滤空数组 无论是空数组 还是值是0 还是值是false 都会过滤掉(不过$arr只能是一维数组,二维数组还没试验过)

声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值