Создать массив из вложенного массива с помощью PHP - PullRequest
0 голосов
/ 07 ноября 2019

Можно ли создать массив таким образом:

Array
        (
            [Name] => John
            [Last Name] => Doe
            [Age] => 19
        )

из вложенного массива следующим образом:


    [1] => Array
        (
            [Name] => John
        )

    [2] => Array
        (
            [Last name] => Doe 
        )

    [3] => Array
        (
            [Age] => 19
        )

Вложенный массив создается при добавлении значений в массив при создании цикла

foreach ($users as $user) {
        $users[] = array($user['title'] => $user['value']);
    }

Ответы [ 4 ]

6 голосов
/ 07 ноября 2019

Более упрощенное решение @ NigelRen использует array_column:

$output = array_column($users, 'value', 'title');
4 голосов
/ 07 ноября 2019

Вам следует изменить способ построения массива, а не обрабатывать его дальше. В настоящее время вы добавляете новые массивы каждый раз ...

$output = [];
foreach ($users as $user) {
    $output[$user['title']] = $user['value'];
}
1 голос
/ 07 ноября 2019

Вы можете использовать array_reduce

$result = array_reduce(array(
    array("Name"=>"John"),
    array("Last Name" => "Doe"),
    array("Age" => 19)
),function($a,$b){return array_merge($a,$b);},[]);
print_r($result);
1 голос
/ 07 ноября 2019

Вы можете использовать array_walk_recursive, это также будет работать, если у вас есть вложенный массив

array_walk_recursive($a, function($v, $k) use (&$new){ $new[$k]=$v;});

DEMO: - https://3v4l.org/UGQou

...