我如何创建一个按值过滤二维数组的函数?
给出以下数组:
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
)
Run Code Online (Sandbox Code Playgroud)
如何过滤数组以仅显示包含name键中特定值的那些数组?例如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
)
)
Run Code Online (Sandbox Code Playgroud)
编辑
我忘了提到搜索值应该可以互换 - 即name = 'CarEnquiry'或name = 'Finance'.
dch*_*ton 51
将PHP的array_filter函数与回调一起使用.
$new = array_filter($arr, function ($var) {
return ($var['name'] == 'CarEnquiry');
});
Run Code Online (Sandbox Code Playgroud)
编辑:如果需要可以互换,可以稍微修改一下代码:
$filterBy = 'CarEnquiry'; // or Finance etc.
$new = array_filter($arr, function ($var) use ($filterBy) {
return ($var['name'] == $filterBy);
});
Run Code Online (Sandbox Code Playgroud)
如果你想让它成为一个通用函数,请使用:
function filterArrayByKeyValue($array, $key, $keyValue)
{
return array_filter($array, function($value) use ($key, $keyValue) {
return $value[$key] == $keyValue;
});
}
Run Code Online (Sandbox Code Playgroud)