Bonjour,

Je cherche a identifier toutes les combinaisons (dans le désordre) en fonction d'un nombre de participant.
Voici le résultat attendu :
Array
(
[0] => Gagnant 1 - Gagnant 2 - Gagnant 3 -Gagnant 4 - Gagnant 5
[1] => Gagnant 1 - Gagnant 2 - Gagnant 3 -Gagnant 4 - Gagnant 6
[2] => Gagnant 1 - Gagnant 2 - Gagnant 3 -Gagnant 5 - Gagnant 6
[3] => Gagnant 1 - Gagnant 2 - Gagnant 4 -Gagnant 5 - Gagnant 6
[4] => Gagnant 1 - Gagnant 3 - Gagnant 4 -Gagnant 5 - Gagnant 6
[5] => Gagnant 2 - Gagnant 3 - Gagnant 4 -Gagnant 5 - Gagnant 6
)
Ci-dessous le code PHP qui me permet d'afficher tous les résultats possible pour 5 gagnants et 6 participants($limite_j).

Mais ce code pose plusieurs problème :

Si je veux passer à 6 gagnants, je dois rajouter une boucle et modifier ma ligne d'affichage.
Si je ne veux que 2 gagnants, je dois retirer 3 boucles et modifier ma ligne d'affichage.

J'ai pensé à une fonction récursive mais après avoir passer quelque jours sur des tutos et de nombreux tests, je m'y suis casser les dents.
Mon objectif est d'avoir une fonction de type : possibilite(Array $gagnant, $nbGagnant, $nbParticipant).

Est-ce possible ?
A ma place comment feriez vous ?
Merci pour votre aide.



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
$gagnant=["Gagnant 1","Gagnant 2","Gagnant 3","Gagnant 4","Gagnant 5","Gagnant 6","Gagnant 7","Gagnant 8","Gagnant 9","Gagnant 10"];
 
$affichage=[];
$ligne=0;
$limite_j=6;
for($i=0;$i<$limite_j;$i++){
    for($j=$i+1;$j<$limite_j;$j++){
       for($t=$j+1;$t<$limite_j;$t++){
        for($q=$t+1;$q<$limite_j;$q++){
            for($c=$q+1;$c<$limite_j;$c++){
 
 
                $affichage[$ligne]="$gagnant[$i] - $gagnant[$j] - $gagnant[$t] -$gagnant[$q] - $gagnant[$c]";
 
                $ligne++;
 
            }
        }
       }
 
 
    }
}
print'<pre>';
print_r($affichage);
print'</pre>';