首页 > 解决方案 > 数组多维搜索返回所有多个键

问题描述

我有这个数组:

Array
(
    [0] => Array
        (
            [id] => 15bw83nfo3wg4
            [date] => 2019-01-01
            [d_c] => D
            [D] => 76181734.95
            [C] => 0.00
        )

    [1] => Array
        (
            [id] => 15byrr7fo3wg4
            [date] => 2019-01-02
            [d_c] => D
            [D] => 4000000.00
            [C] => 0.00
        )

    [2] => Array
        (
            [id] => 15bzwubfo3wg4
            [date] => 2019-01-02
            [d_c] => K
            [D] => 0.00
            [C] => 1585500.00
        )

    [3] => Array
        (
            [id] => 15c0vlvfo3wg4
            [date] => 2019-01-02
            [d_c] => K
            [D] => 0.00
            [C] => 10000000.00

如何以日期为参数值在该数组中搜索并返回包含参数值的所有数组?

我已经尝试过了:

$date = '2019-01-02';
$key = array_search($date, array_column($data, 'date'));
$result = $data[$key];

但我得到的结果只是:

[1] => Array
     (
        [id] => 15byrr7fo3wg4
        [date] => 2019-01-02
        [d_c] => D
        [D] => 4000000.00
        [C] => 0.00
     )

标签: php

解决方案


使用 array_filter 函数

$result = array_filter($data, function($x) use ($date) { return $x['date'] == $date; });

推荐阅读