Как быстро пересобрать массив?

Здравствуйте!
Есть массив:

array(2) {
  [0]=>
  array(1) {
    ["019a6eab-8fa8-11e6-a509-005056c00008"]=>
    array(3) {
      [0]=>
      string(3) "one"
      [1]=>
      string(4) "two"
      [2]=>
      string(9) "three"
    }
  }
  [1]=>
  array(1) {
    ["22d4bccb-8fa8-11e6-a509-005056c00008"]=>
    array(1) {
      [0]=>
      string(10) "four"
    }
  }
}


Требуется пересобрать его, чтобы получить такой вид:
array(2) {
  ["019a6eab-8fa8-11e6-a509-005056c00008"]=>
  array(3) {
    [0]=>
    string(3) "one"
    [1]=>
    string(4) "two"
    [2]=>
    string(9) "three"
  }
  ["22d4bccb-8fa8-11e6-a509-005056c00008"]=>
  array(1) {
    [0]=>
    string(10) "four"
  }
}


Понятно что можно пересобрать массив, но такой вариант не подходит.
  • Вопрос задан
  • 487 просмотров
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
<?php

$input = [
    [
        'guid-1' => [
            'one',
            'two',
            'three',
        ],
    ],
    [
        'guid-2' => [
            'four',
        ],
    ],
];

var_dump(
    array_reduce(
        $input,
        function ($acc, $item) {
            foreach ($item as $guid => $values) {
                $acc[$guid] = $values;
            }

            return $acc;
        },
        []
    )
);


array(2) {
  ["guid-1"]=>
  array(3) {
    [0]=>
    string(3) "one"
    [1]=>
    string(3) "two"
    [2]=>
    string(5) "three"
  }
  ["guid-2"]=>
  array(1) {
    [0]=>
    string(4) "four"
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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