【发布时间】:2021-09-27 15:36:57
【问题描述】:
我有多个结构如下的数组:
$array1 = ["aaa" => 1, "bbb" => 1];
$array2 = ["aaa" => 12, "bbb" => 12];
$array3 = ["bbb" => 15, "ccc" => 15];
意思:
- 每个数组的每个键都有相同的值(例如:array1 对数组中的每个项都有值“1”)但是没有数组共享相同的值(例如:如果 array1 的值是 1,那么没有其他数组的值 = 1)
- 数组可能共享也可能不共享相同的键
我需要以某种方式组合这些数组,最终结果是这样的:
$result = [
"aaa" => [1,12],
"bbb" => [1,12,15],
"ccc" => [15],
];
意思:
- 最终的数组必须包含之前数组中的所有键
- 键的值是一个数组,由共享同一个键的先前数组的所有值组成
我知道这有点混乱,但我希望它足够清楚。我正在努力构建$result 数组。我尝试了合并、组合、相交,但它们似乎都不起作用。有没有办法在不使用循环的情况下构建$result 数组?
谢谢
【问题讨论】:
-
有没有办法在不使用循环的情况下构建 $result 数组? 简短的回答是否定的,总会涉及某种“循环”,无论是在显而易见或隐藏(在函数中)。
-
我认为没有任何内置的合并功能可以做到这一点。循环应该非常简单。
-
以
foreach ([$array1, $array2, $array3] as $array) { foreach ($array as $key => $value) { ... } }开头。...将值推送到$result的适当元素中。
标签: php arrays array-combine