Fonction aléatoire sur tableaux
Bonjour,
Je travail en ce moment sur une fonction permettant de choisir 2 nombres aléatoirement dans un tableau de valeurs définies, sachant que le deuxième nombre doit être différent du premier et qu'il ne doit jamais avoir été tiré en même temps que le premier (pour cela je parcours un deuxième tableau de valeurs).
Je suis dessus depuis plusieurs jours et je dois avouer que je bloque ... surtout sur la logique.
Voici mon code simplifié :
Code:
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 28 29 30 31 32 33 34 35 36
|
<?php
$tableau_valeurs = array(24 => 32, 32 => 24.39);
$tableau_valeurs_2 = array(1 => 24, 2 => 32, 3 =>39);
$nombres_elements = 3;
$i = 0;
$chiffre_aleatoire_1 = array_rand ($tableau_valeurs_2, 1);
$chiffre_aleatoire_2 = array_rand ($tableau_valeurs_2, 1);
if (isset($tableau_valeurs[$tableau_valeurs_2[$chiffre_aleatoire_1]])){
$tableau_valeurs_separes = explode ('.', $tableau_valeurs[$tableau_valeurs_2[$chiffre_aleatoire_1]]);
$nombre_valeurs_separes = count ($tableau_valeurs_separes);
while (($i == 0)||($chiffre_aleatoire_2 == $chiffre_aleatoire_1)){
for ($j = 0; $j <= $nombre_valeurs_separes; $j++){
if ($tableau_valeurs_2[$chiffre_aleatoire_2] == $tableau_valeurs_separes[$j]){
break;
}
if (($j == $nombre_valeurs_separes)&&($chiffre_aleatoire_2 != $tableau_valeurs_separes[$j])){
$i = 1;
}
}
if ($chiffre_aleatoire_2 < $nombres_elements){
$chiffre_aleatoire_2 = $chiffre_aleatoire_2 + 1;
}
else{
$chiffre_aleatoire_2 = 1;
if($chiffre_aleatoire_2 == $chiffre_aleatoire_1){
$chiffre_aleatoire_2 = $chiffre_aleatoire_2 + 1;
}
}
}
}
echo 'chiffre aleatoire 1 :'.$tableau_valeurs_2[$chiffre_aleatoire_1];
echo '<br />chiffre aleatoire 2 :'.$tableau_valeurs_2[$chiffre_aleatoire_2];
?> |
Qu'en pensez-vous ?
Sachant que la fonction me renvoi régulièrement deux messages d'erreurs pour des offsets indéfinis, et que parfois les deux nombres sont les mêmes !