@kolomat

Как объедить массивы внутри многомерного массива по значению ключа?

Добрый вечер. Вопрос может быть и глупым может показать, но может поможете с редением :)
есть массив вида
Array
(
    [0] => Array
        (
            [parrent] => 1
            [sub] => 100
        )

    [1] => Array
        (
            [parrent] => 1
            [sub] => 101
        )

    [2] => Array
        (
            [parrent] => 1
            [sub] => 102
        )

    [3] => Array
        (
            [parrent] => 1
            [sub] => 103
        )

    [4] => Array
        (
            [parrent] => 1
            [sub] => 104
        )

    [5] => Array
        (
            [parrent] => 2
            [sub] => 200
        )

    [6] => Array
        (
            [parrent] => 2
            [sub] => 201
        )

    [7] => Array
        (
            [parrent] => 2
            [sub] => 202
        )
)

Возможно ли по значению parrent получить в массив все го sub что бы на выходе получить массив вида
Array
(
    [0] => Array
        (
            [parrent] => 1
            [sub] => Array
                (
                    [0] => 101
                    [1] => 102
                    [2] => 103
                    [3] => 104
                )

        )

    [1] => Array
        (
            [parrent] => 2
            [sub] => Array
                (
                    [0] => 201
                    [1] => 202
                    [2] => 203
                    [3] => 204
                )

        )
)
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$grouped = [];

foreach ($arr as [ 'parent' => $p, 'sub' => $s ]) {
  $grouped[$p] ??= [ 'parent' => $p, 'sub' => [] ];
  $grouped[$p]['sub'][] = $s;
}

$grouped = array_values($grouped);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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