Я придерживался алгоритма для:
РЕДАКТИРОВАТЬ: фиксированный массив
Входной массив:
$array = array(
'a',
'b',
array('c1', 'c2' ),
array('d1', 'd2', array('d31','d32'))
);
Мне нужно найти все возможные комбинации каждого нижнего потомка в каждом вложенном массиве.
Следующий массив должен быть в результате:
1) a, b, c1, d1, d31
2) a, b, c1, d1, d32
3) a, b, c1, d2, d31
4) a, b, c1, d2, d32
5) a, b, c2, d1, d31
6) a, b, c2, d1, d32
7) a, b, c2, d2, d31
8) a, b, c2, d2, d32
Я исследовал тонны аналогичного поста на SO
К сожалению, все они не работают с вложенными массивами.
Любая помощь приветствуется, спасибо.
$array = array(
'a',
'b',
array('c1', 'c2'),
array('d1', 'd2', array('d31','d32'))
);
$new_array = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
этот новый массив даст все элементы в массиве. Вы должны быть более конкретными, когда дело доходит до комбинаций. Есть много ответов о том, как получить перестановки или комбинации в php в SO. Найдите то, что подходит для вас. Надеюсь, это поможет.
Других решений пока нет …