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){filter过滤对象数组
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只能是⼀维数组,⼆维数组还没试验过)
声明:禁⽌任何⾮法⽤途使⽤,凡因违规使⽤⽽引起的任何法律纠纷,本站概不负责。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论