【问题标题】:array multidimentional search return all multiple keys [duplicate]数组多维搜索返回所有多个键[重复]
【发布时间】:2019-01-31 09:32:21
【问题描述】:

我有这个数组:

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 作为参数值在该数组中搜索并返回包含参数值的 ALL 数组?

我已经试过了:

$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


【解决方案1】:

使用array_filter函数

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

【讨论】:

    【解决方案2】:

    你只会得到一个结果,因为你的 $key 变量只返回第一个找到的元素,要获得多个你需要使用的元素:

    array_keys(array_column($array, 'date'), "2019-01-02")
    

    这将返回包含您要查找的数组中的键的键列表。

    然后你可以遍历它们:

    $array = [["id" => 1, "date" => "2019-01-02"],["id" => 2, "date" => "2019-01-03"],["id" => 3, "date" => "2019-01-02"],["id" => 4, "date" => "2019-01-05"]];
    
    $date = '2019-01-02';
    
    $keys = array_keys(array_column($array, 'date'), "2019-01-02");
    
    $results = [];
    
    foreach ($keys as $key) {
        $results[] = $array[$key];
    }
    
    var_dump($results);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2017-08-27
      相关资源
      最近更新 更多