php - 组合动态数组
问题描述
我现在正在努力组合这两个数组。有人可以帮我用什么吗?
Array
(
[1] => Array
(
[0] => 1-1
[1] => 1-2
[2] => 1-1
[3] => 1-2
[4] => 1-1
)
[3] => Array
(
[0] => 3-3
[1] => 3-3
[2] => 3-4
[3] => 3-4
[4] => 3-3
)
)
Array[1] key [0] => 1-1 needs to combine with
Array[3] key [0] => 3-3
Array[1] key [1] => 1-2 needs to combine with
Array[3] key [1] => 3-3
结果将是:1-1,3-3 和 1-2,3-3
请注意,第一个数组 [1] 和 [3] 中的键可以是动态的。
我这样做了:
print_r(array_merge_recursive($optionWithValue[1], $optionWithValue[3]));
但是现在我有可以更改的 1 和 3 硬编码,我最终得到:
Array
(
[0] => 1-1
[1] => 1-2
[2] => 1-1
[3] => 1-2
[4] => 1-1
[5] => 3-3
[6] => 3-3
[7] => 3-4
[8] => 3-4
[9] => 3-3
)
所以这也不是我需要的
解决方案
如果数组中数组的键相同,则可以使用array_reduce:
$arrays = [
[
"1-1",
"1-2",
"1-1",
"1-2",
"1-1",
],
[
"3-3",
"3-3",
"3-4",
"3-4",
"3-3",
],
];
$first = array_shift($arrays);
$res = array_reduce($arrays, function($carry, $item){
foreach($item as $key => $value) {
$carry[$key] = $carry[$key] . "," . $value;
}
return $carry;
}, $first);
print_r($res);
结果
Array
(
[0] => 1-1,3-3
[1] => 1-2,3-3
[2] => 1-1,3-4
[3] => 1-2,3-4
[4] => 1-1,3-3
)
推荐阅读
- python - 这个什么时候
成为一个 ? - unity3d - 如何使用代码更改 CineMachine 死区宽度?统一
- spring-boot - 在 Kong API 网关中使用 .jks 密钥对 JWT 令牌进行身份验证
- windows - 是否可以获取 Windows 10 本地 IP 地址的 ssl
- c++ - 来自 GCC 内部的运算符“>”或“>>”错误需要模板参数 C++ 中的表达式
- c# - 尝试通过 C# 将日期插入 .accdb 但数据出错
- python - 如何制作一个计算 qgis 中特征属性的程序?
- databricks - databricks 编辑器用户界面问题
- react-native - extraData 钩子不适用于 2 个 flatLists 之一
- vue.js - Vuetify:如何创建三角形徽章?