为了账号安全,请及时绑定邮箱和手机立即绑定

如何按值过滤二维数组

/ 猿问

如何按值过滤二维数组

PHP
临摹微笑 2019-12-04 12:42:42

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


给定以下数组:


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'。


结果输出为:


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'。


查看完整描述

3 回答

?
一只斗牛犬

将PHP的array_filter函数与回调一起使用。


$new = array_filter($arr, function ($var) {

    return ($var['name'] == 'CarEnquiry');

});

编辑:如果需要可互换,则可以稍微修改代码:


$filterBy = 'CarEnquiry'; // or Finance etc.


$new = array_filter($arr, function ($var) use ($filterBy) {

    return ($var['name'] == $filterBy);

});


查看完整回答
反对 2019-12-04
?
qq_笑_17

array_filter是您需要的功能。http://php.net/manual/zh/function.array-filter.php


给它一个这样的过滤功能:


function my_filter($elt) {

    return $elt['name'] == 'something';

}


查看完整回答
反对 2019-12-04
?
慕斯卡3215842

<?php




    function filter_array($array,$term){

        $matches = array();

        foreach($array as $a){

            if($a['name'] == $term)

                $matches[]=$a;

        }

        return $matches;

    }


    $new_array = filter_array($your_array,'CarEnquiry');


?>


查看完整回答
反对 2019-12-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信