如何按值过滤二维数组 [英] How to filter a two dimensional array by value
本文介绍了如何按值过滤二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将如何创建一个按值过滤二维数组的函数?
How would I create a function that filters a two dimensional array by value?
给出以下数组:
Array
(
[0] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => CarEnquiry
[status] => NEW
[appointment] => 0
)
[1] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => CarEnquiry
[status] => CALL1
[appointment] => 0
)
[2] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => Finance
[status] => CALL2
[appointment] => 0
)
[3] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => Partex
[status] => CALL3
[appointment] => 0
)
如何过滤数组以仅显示在name
键中包含特定值的那些数组?例如name = 'CarEnquiry'
.
How would I filter the array to only show those arrays that contain a specific value in the name
key? For example name = 'CarEnquiry'
.
结果将是:
Array
(
[0] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => CarEnquiry
[status] => NEW
[appointment] => 0
)
[1] => Array
(
[interval] => 2014-10-26
[leads] => 0
[name] => CarEnquiry
[status] => CALL1
[appointment] => 0
)
)
编辑
我忘了提到搜索值应该是可互换的-即name = 'CarEnquiry'
或name = 'Finance'
.
I forgot to mention that the search value should be interchangeable - i.e. name = 'CarEnquiry'
or name = 'Finance'
.
推荐答案
使用PHP的具有回调功能的array_filter 函数.
$new = array_filter($arr, function ($var) {
return ($var['name'] == 'CarEnquiry');
});
如果需要可互换,则可以稍作修改:
If it needs to be interchangeable, you can modify the code slightly:
$filterBy = 'CarEnquiry'; // or Finance etc.
$new = array_filter($arr, function ($var) use ($filterBy) {
return ($var['name'] == $filterBy);
});
这篇关于如何按值过滤二维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文