将一个数组值作为键值对附加到另一个数组php

时间:2019-08-28 15:32:57

标签: php arrays multidimensional-array

我有两个保证长度相同的数组。这两个数组具有以下结构

array1

Array
(
    [0] => Array
        (
            [id] => 841052
            [store] => 11
            [position] => 1
        )

    [1] => Array
        (
            [id] => 1613197
            [store] => 11
            [position] => 401
        )

    [2] => Array
        (
            [id] => 1648966
            [store] => 11
            [position] => 1
        )

    [3] => Array
        (
            [id] => 1656857
            [store] => 11
            [position] => 1
        )
....
....
)

array2

Array

(
    [0] => 5/20/2019
    [1] => 7/7/2019
    [2] => 12/16/2018
    ...
    ...
)

如何将array2的每个值作为键值对附加到array1以获得以下数组。密钥名称可以是我刚刚选择的日期。

Array
(
    [0] => Array
        (
            [id] => 841052
            [store] => 11
            [position] => 1
            [date] => 5/20/2019
        )

    [1] => Array
        (
            [id] => 1613197
            [store] => 11
            [position] => 401
            [date] => 7/7/2019
        )

    [2] => Array
        (
            [id] => 1648966
            [store] => 11
            [position] => 1
            [date] => 12/16/2018
        )
)
...
...
...

我尝试过

array_push($array1, $array2);

它只是将其推到数组的最后一个元素。我想到要使用两个foreach循环,但无法正常工作。是否有内置的php函数可以做到这一点,或者我必须循环执行。

2 个答案:

答案 0 :(得分:3)

只需遍历$array1并通过使用相同的密钥添加新密钥和$array2的值来修改每个子数组,即可:

array_walk($array1, function(&$v, $k) use($array2) { $v['date'] = $array2[$k]; });

答案 1 :(得分:2)

尝试一下:

    $array1 = array(array("id" => 841052, "store" => "11", "position" => "1"), array("id" => 1613197, "store" => "11", "position" => "401"),);
    $array2 = array("5/20/2019", "7/7/2019");
    foreach ($array1 as $index => $valuearray1) {
        if (array_key_exists($index, $array2)) {
            $array1[$index]["date"] = $array2[$index];
        }
    }
    var_dump($array1);
相关问题