Как из одного массива собрать другой массив php

Имеется массив вида

Array
(
    [0] => 2022-5
    [1] => 2022-6
    [2] => 2022-7
)
Каким способом можно из него сделать массив следущего вида

Array
(
    [2022] => 
        Array (
            [0] => 5
            [1] => 6
            [2] => 7
            )
)
Спасибо гениальному гению :)


Ответы (2 шт):

Автор решения: Red

Используйте многомерные массивы. В массив можно вложить другой массив.

$array[2022]= array2;

→ Ссылка
Автор решения: USSRCoder
//Исходный массив
$src = Array("2022-5","2022-6","2022-7");

//результирующий массив
$new_array = Array();

//пройтись по всем элементам исходного массива
foreach ($src as $key=>$val) {
    // разделить xxxx-xx, на две части. используя в кач. разделителя -
    // https://www.php.net/manual/ru/function.explode.php
    $v = explode("-",$val); // $v[0] - год, $v[1] = месяц

    //только уникальные месяцы? Можно удалить, если не нужно
    if (!in_array($v[1], $new_array[$v[0]]) ) { 

        // для добавления нового элемента в массив, можно использовать
        // []; например $x[] = 10 - добавит в конец массива $x 10
        $new_array[$v[0]][] = $v[1]; // добавление в новый массив
    }
}
print_r($new_array);
→ Ссылка