Bonjour,
Je cherche a identifier toutes les combinaisons (dans le désordre) en fonction d'un nombre de participant.
Voici le résultat attendu :
Ci-dessous le code PHP qui me permet d'afficher tous les résultats possible pour 5 gagnants et 6 participants($limite_j).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
)
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>';
Partager