Я работаю над личным проектом, и я застрял в поиске комбинаций всех элементов массива, как показано ниже. Я могу найти все комбинации, когда у меня есть определенное количество массивов, но, к сожалению, у меня этого нет.
Вот документированный код:
$C = array(
"I" => array(
0 => array("I_1_1"),
1 => array("I_1_2")
),
"L" => array(
0 => array("L_1_1"),
1 => array("LI_1_1 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
I_1_2 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
1"),
),
"K" => array(
0 => array("K_1_1"),
1 => array("K_1_2"),
2 => array("KI_1_1 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
I_1_2 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
1"),
3 => array("KI_1_1 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
I_1_2 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
2"),
),
);
В настоящее время $C имеет 3 элемента, но это очень вариабельно, так как у вас может быть 2+. Кроме того, каждый массив внутри $C также имеет переменную длину и может достигать максимальной длины 144, но это очень редко.
В любом случае, моя цель - заставить php-скрипт вывести это:
I_1_1 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
I_1_2 L_1_1 K_1_1
K_1_2
K_2_1
K_2_2
L_2_1 K_1_1
K_1_2
K_2_1
K_2_2
Я сделал это специально, чтобы не повторять первые 2 столбца в выводе, чтобы вы могли видеть «направление» комбинации, но в конечном итоге вывод будет массивом, содержащим все возможные комбинации, подобные таким:
$result = array(array("I_1_1","L_1_1","K_1_1"),array("I_1_1","L_1_1","K_1_2")....
и так далее..
Я не знаю, ясно ли я выразился или запутал вас еще больше, но если нужны какие-либо подробности, пожалуйста, дайте мне знать.
Заранее спасибо всем, кто мне поможет, я очень ценю все усилия, которые вы, ребята, приложили, чтобы помочь таким людям, как я.
*Изменить: * Было бы лучше для меня изменить структуру массива, чем использовать эту, чтобы было проще генерировать перестановки?