如何按值过滤二维数组 [英] How to filter a two dimensional array by value

查看:191
本文介绍了如何按值过滤二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将如何创建一个按值过滤二维数组的函数?

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆