Как построить рекурсивную функцию для перечисления всех комбинаций многоуровневого массива?
У меня есть массив, который может содержать любое количество элементов. Каждый элемент содержит идентификатор и массив с именем & 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')
)
);
Поскольку массив может содержать любое количество элементов, я предполагаю, что мне потребуется включить некоторый тип рекурсивной функции. У меня нет большого опыта в рекурсии, так что это довольно сложная задача для меня.
Могу ли я получить некоторые указания о том, с чего начать создание этой рекурсивной функции?