Php 按具有唯一值的键合并两个数组
我有两个数组(在foreach循环中),它们可能具有也可能不具有与下面的代码示例相同的动态生成密钥,例如Php 按具有唯一值的键合并两个数组,php,arrays,Php,Arrays,我有两个数组(在foreach循环中),它们可能具有也可能不具有与下面的代码示例相同的动态生成密钥,例如298184182 我想合并相同键的值并生成一个数组 注意:数组是foreach循环中的结果。 键是由id动态生成的,两个数组中的项可能相同,也可能不同 循环中的结果数组 需要单个数组 假设第二个数组也可以有不在第一个数组中的键,您可以从两个数组中找到所有唯一的键,然后对它们进行迭代,将array1和array2中的值合并到一个结果数组中: $keys = array_unique(array
298184182
我想合并相同键的值并生成一个数组
注意:数组是foreach循环中的结果。键是由id动态生成的,两个数组中的项可能相同,也可能不同 循环中的结果数组 需要单个数组
假设第二个数组也可以有不在第一个数组中的键,您可以从两个数组中找到所有唯一的键,然后对它们进行迭代,将
array1
和array2
中的值合并到一个结果数组中:
$keys = array_unique(array_merge(array_keys($array1), array_keys($array2)));
$result = array();
foreach ($keys as $key) {
$result[$key]['dates'] = array_merge($array1[$key]['dates'] ?? [], $array2[$key]['dates'] ?? []);
}
print_r($result);
这是否回答了您的问题@UrmatZhenaliev谢谢,很接近,但是Nick的回答解决了问题。非常感谢。你是个和蔼可亲的人。我尝试了两天各种循环,但没有运气。谢谢你的帮助。@codeloper别担心,我很高兴能帮上忙。
Array
(
[298] => Array
(
[dates] => Array
(
[0] => 2020-12-26 10:39:13
[1] => 2020-12-15 12:18:23
[2] => 2020-12-22 12:27:46
[3] => 2020-12-24 10:51:00
[4] => 2020-12-26 10:01:44
[5] => 2020-12-26 10:31:55
[6] => 2020-12-26 10:48:33
[7] => 2020-12-26 10:56:34
[8] => 2020-11-16 07:38:26
[9] => 2020-11-16 07:47:05
[10] => 2020-12-15 12:20:07
[11] => 2020-12-24 10:52:35
)
)
[184] => Array
(
[dates] => Array
(
[0] => 2020-11-16 07:52:33
[1] => 2020-12-24 13:01:14
[2] => 2020-11-16 07:53:12
)
)
[182] => Array
(
[dates] => Array
(
[0] => 2021-01-05 08:50:27
)
)
)
$keys = array_unique(array_merge(array_keys($array1), array_keys($array2)));
$result = array();
foreach ($keys as $key) {
$result[$key]['dates'] = array_merge($array1[$key]['dates'] ?? [], $array2[$key]['dates'] ?? []);
}
print_r($result);