首页 > 后端开发 > php教程 > 如何在 PHP 中按特定值有效过滤二维数组?

如何在 PHP 中按特定值有效过滤二维数组?

Patricia Arquette
发布: 2024-11-26 02:08:11
原创
311 人浏览过

How can I efficiently filter a two-dimensional array in PHP by a specific value?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板