Как построить рекурсивную функцию для перечисления всех комбинаций многоуровневого массива?

У меня есть массив, который может содержать любое количество элементов. Каждый элемент содержит идентификатор и массив с именем & quot; параметры & quot; (также с любым количеством элементов). Вот структура:

$arr = array(
             array('id' => 10, 'options' => array(3, 5)),
             array('id' => 15, 'options' => array(2, 4, 8, 9)),
             array('id' => 20, 'options' => array(2, 6, 7)),
             // ... any number of elements
            );

Я хотел бы создать еще один массив на основе этого. Каждый ключ представляет собой поле идентификатора + «опция». значение массива, а значением является массив следующего элемента, затем следующего и так далее. В основном это должно дать мне каждую комбинацию вышеуказанных массивов (вроде дерева) в том порядке, в котором был определен массив:

$new = array(
             '10-3' => array(
                            '15-2' => array('20-2', '20-6', '20-7'),
                            '15-4' => array('20-2', '20-6', '20-7'),
                            '15-8' => array('20-2', '20-6', '20-7'),
                            '15-9' => array('20-2', '20-6', '20-7')
                            ),
             '10-5' => array(
                            '15-2' => array('20-2', '20-6', '20-7'),
                            '15-4' => array('20-2', '20-6', '20-7'),
                            '15-8' => array('20-2', '20-6', '20-7'),
                            '15-9' => array('20-2', '20-6', '20-7')
                            )
             );

Поскольку массив может содержать любое количество элементов, я предполагаю, что мне потребуется включить некоторый тип рекурсивной функции. У меня нет большого опыта в рекурсии, так что это довольно сложная задача для меня.

Могу ли я получить некоторые указания о том, с чего начать создание этой рекурсивной функции?

Ответы на вопрос(2)

Ваш ответ на вопрос