<?php $arr = array( array('optional' => 0, 2, 9), array('optional' => 0, 3, 4),/* array('optional' => 0, 6, 7, 8),*/ array('optional' => 1, 6,),/* array('optional' => 1, 6, 7, 8, 5, 9), array('optional' => 1, 6, 7, 8, 10, 11, 12)*/ ); function generateCombinations(array $array) { foreach (array_pop($array) as $value) { $option = $value["optional"]; if (count($array)) { foreach (generateCombinations($array) as $combination) { yield array_merge([$value], $combination); }; } else { yield [$value]; if($option == 1) yield []; } } } foreach(generateCombinations($arr) as $combination){ echo implode(",", $combiantion) . "\n"; }
You have javascript disabled. You will not be able to edit any code.