<?php $a_values = array( "1-5" => 50, "6" => 10, "7" => 10, "8" => 10, "9-10" => 20 ); $i_result = rand(1, 10); echo 'Je suis le '.$i_result.' '; echo getPercentage($a_values, $i_result); echo ' '; $a_values = array( "1-50" => 50, "51-60" => 10, "61-70" => 10, "71-80" => 10, "81-100" => 20 ); $i_result = rand(1, 100); echo 'Je suis le '.$i_result.' '; echo getPercentage($a_values, $i_result); echo ' '; function getPercentage($a_values, $i_result) { foreach ($a_values as $i_num => $s_percentage) { $a_num = (array) explode("-", $i_num); if ((isset($a_num[1])) && ($a_num[0] <= $i_result) && ($a_num[1] >= $i_result)) { $s_result = (string) sprintf('Le %d a %d% de chance', $i_result, utf8_decode($s_percentage)); } elseif ($i_num === $i_result) { $s_result = (string) sprintf('Le %d a %d% de chance', $i_result, utf8_decode($s_percentage)); } } return (string) $s_result; }
Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire
121 internautes nous ont dit merci ce mois-ci
Tu peux faire 2 tableaux, 1 avec les proba, l'autre avec les données
Dans les probas, tu mets le nombre de chance d'apparition (5, 4, 1).
Puis, tu fais la somme des valeurs du tableau (ici 10), puis tu fais un générateur aléatoire de 0 à la somme-1.
Puis tu parcours le tableau, si case inférieur à la valeur du tirage, alors, Tirage=Tirage-Case, sinon, tu prends la case.
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.