是否有一种方法爆炸的关联数组数组成一个数组而不丢失在PHP中的键?



我有一个像这样的关联数组的数组

$my_array = [
[ 8 => "One" ],
[ 3=>"Two" ]
]

如何将所有的关联数组合并成一个数组呢

[
8 => "One",
3 =>"Two"
]

我试过使用array_merge(...$my_array),所有它给出的是

[
0 => "One"
1 => "Two"
]

在纯php中,假设这些数组总是这样的:(如果你不确定,你应该循环遍历sub_array来获取键)

foreach($my_array as $sub_array ){
$new_array[key($sub_array)] = $sub_array[key($sub_array)];
}
var_export($new_array);

您可以这样做,通过使用Collection和mapWithKeys方法:

$a = [
[
8 => "One",
],
[
3 => "Two",
],
];
$b = collect($a)->mapWithKeys(function($a) {
return $a;
})->toArray();
dd($b);
// [
//  8 => "One"
//  3 => "Two"
// ]

循环遍历两个关卡以获取密钥

foreach ($my_array as $sub_array) {
foreach ($sub_array as $key => $value) {
$new_array[$key] = $value;
}
}
print_r($new_array);

最新更新