Преобразование плоского ассоциативного массива в индексированный двумерный массив с ассоциативными строками

у меня такой массив

[
    123456 => 'John Doe'
    654321 => 'Doe John'
]

Я хочу изменить ключ массива (123456 и 654321) на индекс (0,1,2,3,....,n) и сохранить его в значение, ожидаемый результат выглядит так

array(
    0 => array(
        'name' => 'John Doe',
        'code' => 123456.
    ),
    1 => array(
        'name' => 'Doe John',
        'code' => 654321.
    ),
)

это код, который я пробовал, я только что получил

$thearray= array_map(function ($value, $key) {
                return $key;
            }, $thearray, array_keys($thearray));
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используйте foreach

$pemeriksa = [
    123456 => 'John Doe',
    654321 => 'Doe John'
];

$newArray = [];
foreach ($pemeriksa as $key => $value) {
    $newArray[] = ["name" => $value , "code" => $key];
}
print_r($newArray);
Ответ принят как подходящий

В цикле foreach определите ключи и значения, используя имя ключа, которое вы хотите видеть в результирующих строках. Затем вызовите compact() в теле цикла, прежде чем вставлять данные новой строки в массив результатов.

Код: (Демо)

$result = [];
foreach ($thearray as $code => $name) {
    $result[] = compact(['name', 'code']);
}
var_export($result);

Ваше программирование в функциональном стиле можно исправить следующим образом:

Код: (Демо)

var_export(
    array_map(
        fn($name, $code) => compact(['name', 'code']),
        $thearray,
        array_keys($thearray)
    )
);

Другие вопросы по теме