Как отобразить элементы массива во внутренний массив с помощью php?

У меня есть массив, который должен быть переделан (желательно встроенная функция PHP):

[
0 => ['ax' => 'Aland Islands'],
1 => ['as' => 'American Samoa'],
2 => ['am' => 'Armenia']
];

Нужно переделать на:

[
'ax' => 'Aland Islands'
'as' => 'American Samoa'
'am' => 'Armenia'
];

-1

Решение

Вы можете выбрать внутренний массив и использовать 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];
}

Проверить результат в демонстрация

0

Другие решения

использование 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] => Армения
)

Очень полезная функция, выходящая далеко за рамки накопления суммы / продукта!

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector