在 PHP 中按值高效过滤二维数组
在 PHP 编程中,按特定值高效过滤二维数组可以使用多功能的 array_filter 函数结合回调来实现。
简单按单个值过滤
要按键中的特定值过滤数组,我们可以使用以下语法:
$new = array_filter($arr, function ($var) { return ($var['name'] == 'CarEnquiry'); });
这里,$arr 是输入数组,回调函数检查每个子数组中的名称键是否与目标值匹配。生成的 $new 数组仅包含名称等于 'CarEnquiry' 的子数组。
多个值的可互换过滤
如果目标值可能不同,我们可以增强回调函数以处理可互换的过滤:
$filterBy = 'CarEnquiry'; // or Finance etc. $new = array_filter($arr, function ($var) use ($filterBy) { return ($var['name'] == $filterBy); });
回调函数中的 use 关键字允许我们访问$filterBy 变量,可以修改该变量以指定不同的目标值,从而允许动态过滤。
示例用法
以以下数组为例:
$arr = [ [ 'interval' => '2014-10-26', 'leads' => 0, 'name' => 'CarEnquiry', 'status' => 'NEW', 'appointment' => 0 ], [ 'interval' => '2014-10-26', 'leads' => 0, 'name' => 'CarEnquiry', 'status' => 'CALL1', 'appointment' => 0 ], [ 'interval' => '2014-10-26', 'leads' => 0, 'name' => 'Finance', 'status' => 'CALL2', 'appointment' => 0 ], [ 'interval' => '2014-10-26', 'leads' => 0, 'name' => 'Partex', 'status' => 'CALL3', 'appointment' => 0 ] ];
过滤 $arr 以仅包含名称等于“CarEnquiry”结果的条目在:
$filtered = array_filter($arr, function ($var) { return ($var['name'] == 'CarEnquiry'); });
生成的 $filtered 数组将包含:
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 ) )
以上是如何在 PHP 中按特定值有效过滤二维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!