我有两个保证长度相同的数组。这两个数组具有以下结构
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函数可以做到这一点,或者我必须循环执行。
答案 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);