@ganjo888

Как дочерние элементы массива смержить к родительским?

Имеется такой массив
$users = [
            [
                "name"         => "Илья",
                "surname"      => "Блинов",
                "organization" => [
                    "name"   => "фейсбук",
                    "region" => [
                        "id"   => 62,
                        "name" => "Рязанская область",
                    ],
                ],
            ],
        ];

Как мне смержить дочерние элементы массива?(получить плоский массив)
Хочу получить вот такой массив
$users = [
            [
                "name"             => "Илья",
                "surname"          => "Блинов",
                "organizationName" => 'фейсбук',
                "regionName"       => 'Рязанская область',
                "regionId"         => 62,
            ],
        ];

Начал делать но не понимаю как дольше
foreach ($users as $k => $user) {
            foreach ($user as $v => $value) {
                if (is_array($value)) {


                }
            }
        }
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
feycot
@feycot
Необходимо использовать функцию array_map
array_map(function ($user) {
        $organization = $user['organization'];
        $region = $organization['region'];

        return [
            "name"             => $user['name'],
            "surname"          => $user['surname'],
            "organizationName" => $organization['name'],
            "regionName"       => $region['name'],
            "regionId"         => $region['id'],
        ];
    }, $users)


Array
(
    [0] => Array
        (
            [name] => Илья
            [surname] => Блинов
            [organizationName] => фейсбук
            [regionName] => Рязанская область
            [regionId] => 62
        )

)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы