从多维数组 php 创建不同的数组集

create distinct array set from multidimensional array php

我一直在尝试创建一个独特的国家/地区代码数组,它将获取仅适用于该国家/地区的所有日期,并使用 PHP 中的多维数组添加到该数组中,但我无法存档.

输入数组

Array
(
    [0] => Array
        (
            [0] => 2019-01-01
            [1] => lt
            [2] => passport
            [3] => 30122719
            [4] => 2019-03-01
            [5] => 357717289
        )

    [1] => Array
        (
            [0] => 2019-01-01
            [1] => pl
            [2] => identity_card
            [3] => 9879386836
            [4] => 2018-11-01
            [5] => 643023760
        )

    [2] => Array
        (
            [0] => 2019-01-02
            [1] => lt
            [2] => passport
            [3] => 46530663
            [4] => 2019-03-01
            [5] => 357717289
        )

    [3] => Array
        (
            [0] => 2019-01-02
            [1] => pl
            [2] => identity_card
            [3] => 4531480055
            [4] => 2017-10-21
            [5] => 324444899
        )

    [4] => Array
        (
            [0] => 2019-01-03
            [1] => lt
            [2] => passport
            [3] => 54163812
            [4] => 2019-03-01
            [5] => 357717289
        )

    [5] => Array
        (
            [0] => 2019-01-03
            [1] => fr
            [2] => drivers_license
            [3] => 95180604
            [4] => 2018-07-02
            [5] => 942959784
        )
)

预期输出

Array
(
    [lt] => Array
        (
            [0] => 2019-03-01
            [1] => 2019-03-01
            [2] => 2019-03-01
        )

    [pl] => Array
        (
            [0] => 2018-11-01
            [1] => 2017-10-21
        )

    [fr] => Array
        (
            [0] => 2018-07-02
        )

)

到目前为止我已经尝试了以下方法

$dist = array();
foreach ($inputArray as $key => $value) {
     foreach ($value as $index => $v) {
          $dist[$value[1]] = $value[4];
     }
}

代码returns如下

Array
(
    [lt] => 2019-03-01
    [pl] => 2016-08-01
    [fr] => 2019-04-01
    [de] => 2009-01-01
    [uk] => 2015-09-07
    [es] => 2015-09-08
    [it] => 2019-02-16
)

您非常接近 - 您只是错过了将元素附加到数组的 [] 运算符。

看到这个:

$dist = array();
$cc = array('fr', 'pl', 'lt');
foreach ($inputArray as $key => $val) {
     if (in_array($val[1], $cc) { //get only the county code you want
          $dist[$val[1]][] = $val[4]; // notice the change in this line
     }
}