Hoi,
Ik wilde een functie schrijven voor een random nummer generator die altijd een
uniek nummer pakt. (oftewel geen dubbele)
Nou werkt het bijna, ik stuit alleen op het volgende probleem:
Hij zet alle gegenereerde waardes in de array $al_gedaan. Hij controleert of de random waarde al in de array voorkomt. Zoja, dan moet die de functie opnieuw uitvoeren.
Ik heb de volgende code:
http://home.pelders.net/test/random.php (refresh een aantal keer om te zien wat er fout gaat)
Wie kan mij helpen?
Ik wilde een functie schrijven voor een random nummer generator die altijd een
uniek nummer pakt. (oftewel geen dubbele)
Nou werkt het bijna, ik stuit alleen op het volgende probleem:
Hij zet alle gegenereerde waardes in de array $al_gedaan. Hij controleert of de random waarde al in de array voorkomt. Zoja, dan moet die de functie opnieuw uitvoeren.
Ik heb de volgende code:
http://home.pelders.net/test/random.php (refresh een aantal keer om te zien wat er fout gaat)
PHP:
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
| function random($random) { global $al_gedaan; if (!in_array($random_number = mt_rand(0, (count($random) - 1)), $al_gedaan)) { array_push($al_gedaan, $random_number); return($random_number); } else { echo "Fout: ".$random_number."<br>"; random($random); } } $al_gedaan = array(); $rand_array = array(); $sql = "SELECT film_id FROM film WHERE 1"; $resultaat = mysql_query($sql) or die (mysql_error()); while($gegevens = mysql_fetch_array($resultaat)) { array_push($rand_array, $gegevens["film_id"]); } for ($i=1; $i <= 5; $i++) { echo "Nummer $i: ".@$rand_array[($rand = random($rand_array))]." - ".$rand."<br>"; } print_r($al_gedaan); |
Wie kan mij helpen?