У меня есть массив, который должен быть переделан (желательно встроенная функция PHP):
[
0 => ['ax' => 'Aland Islands'],
1 => ['as' => 'American Samoa'],
2 => ['am' => 'Armenia']
];
Нужно переделать на:
[
'ax' => 'Aland Islands'
'as' => 'American Samoa'
'am' => 'Armenia'
];
Вы можете выбрать внутренний массив и использовать array_merge()
создать новый массив с целевой структурой.
$arr = [
0 => ['ax' => 'Aland Islands'],
1 => ['as' => 'American Samoa'],
2 => ['am' => 'Armenia']
];
$newArr = array_merge($arr[0], $arr[1], $arr[2]);
Если массив содержит много внутренних массивов, используйте
$newArr = array_merge(...$arr);
Также вы можете перебирать массив и вставлять внутренний массив в новую переменную.
foreach ($arr as $item){
$key = array_keys($item)[0];
@$newArr[$key] = $item[$key];
}
Проверить результат в демонстрация
использование array_reduce ():
$array = [
0 => ['ax' => 'Aland Islands'],
1 => ['as' => 'American Samoa'],
2 => ['am' => 'Armenia']
];
print_r(
array_reduce($array,
function ($c, $i) {
return array_merge($c, $i);
},
[]
)
);
Выходы:
массив
(
[ax] => Аландские острова
[as] => Американское Самоа
[am] => Армения
)
Очень полезная функция, выходящая далеко за рамки накопления суммы / продукта!