1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
$liste2 = array("banane",5,"escalier",9,11);
function partition2($index, $p, $n, $ordered, $liste) {
global $liste2;
if ($index>=$p) {// la liste est construite -> FIN
echo implode(" - ", $liste)."<br/>";
return;
}
// ajoute un nouvel element candidat dans la liste
// - sans ordre -> candidat: tous les elements
// - avec ordre -> candidat: seulement les elements supérieurs au précédent
$start=0;
if ($ordered && $index>0) {
$start = array_search($liste[$index-1], $liste2) + 1;
}
for($i=$start;$i<$n;$i++) {
$liste[$index] = $liste2[$i];
partition2($index+1, $p, $n, $ordered, $liste);
}
}
partition2(0, 4, count($liste2), $ordered = true, $liste = array()); |
Partager