login  Naam:   Wachtwoord: 
Registreer je!
 Forum

random weergeven maar niet dezelfde uitkomst

Offline Behemutant - 17/07/2008 19:45
Avatar van BehemutantNieuw lid Beste,

Ik heb (zie het script) wat filmpjes welke ik random wil weergeven.
Dit werk allemaal prima maar er is één probleem nml. soms wordt bij zowel plaatje 1 als bij plaatje 2 het zelfde weergegeven. Ze hebben dus de zelfde random uitkomst toevallig.

Is hier een simpele oplossing voor zodat dit niet meer gebeurd?


  1. <?php
  2. // images // link
  3. $i[0] = 'trailers/1.png'; $z[0] = 'http://nl.youtube.com/watch?v=;
  4. $i[1] = 'trailers/2.png'; $z[1] = 'http://nl.youtube.com/watch?v=;
  5. $i[2] = 'trailers/3.png'; $z[2] = 'http://nl.youtube.com/watch?v=;
  6. $i[3] = 'trailers/4.png'; $z[3] = 'http://nl.youtube.com/watch?v=;
  7. $i[4] = 'trailers/5.png'; $z[4] = 'http://nl.youtube.com/watch?v=;
  8. $i[5] = 'trailers/6.png'; $z[5] = 'http://nl.youtube.com/watch?v=;
  9. $i[6] = 'trailers/7.png'; $z[6] = 'http://nl.youtube.com/watch?v=;
  10. $i[7] = 'trailers/8.png'; $z[7] = 'http://nl.youtube.com/watch?v=;
  11. $i[8] = 'trailers/9.png'; $z[8] = 'http://nl.youtube.com/watch?v=;
  12. $i[9] = 'trailers/10.png'; $z[9] = 'http://nl.youtube.com/watch?v=;
  13. $i[10] = 'trailers/11.png'; $z[10] = 'http://nl.youtube.com/watch?v=';
  14.  
  15. // hoeveel trailers hebben we?
  16. $aantal = count($i) -1;
  17. // tabel openen
  18. echo '<table>';
  19.  
  20. // display the thumnails
  21. for($a = 0; $a < 2; $a++) {
  22. $select = rand(0, $aantal);
  23. echo '<tr><td><a href="'.$z[$select].'"><img src="'.$i[$select].'" alt="Watch me!" border="0" /></a></td></tr>';
  24. }
  25.  
  26. // afsluiten
  27. echo '</table>';
  28. ?>

7 antwoorden

Gesponsorde links
Offline Sam - 17/07/2008 19:58
Avatar van Sam PHP expert Vergeet je niet om bij z[0] t.e.m. z[9] de aanhalingstekens te sluiten?
Offline Behemutant - 17/07/2008 20:00
Avatar van Behemutant Nieuw lid ja heb ik hoor haha maar met kopieren in SIMA scherm is het verkeerd gegaan mijn excuses ;)
Offline Martijn - 17/07/2008 20:46
Avatar van Martijn Crew PHP de array door elkaar halen
  1. <?php
  2. $numbers = array('1','2','3','4');
  3. shuffle($numbers);
  4. ?>


en dan in die volgorde 1 voor 1 eruit halen 
Offline bosgroen - 17/07/2008 23:20 (laatste wijziging 17/07/2008 23:21)
Avatar van bosgroen Gouden medaille

PHP interesse
Hoi, als ik het goed begrijp wil je 2random plaatjes weergeven; maar soms valt het voor dat ze beiden hetzelfde zijn (dat is heel waarschijnlijk als er weinig plaatjes zijn).

nu ik zou de code lichtjes aanpassen, als volgt.
  1. // display the thumnails
  2. for($a = 0; $a < 2; $a++) {
  3. $select = rand(0, count($i) -1);
  4. echo '<tr><td><a href="'.$z[$select].'"><img src="'.$i[$select].'" alt="Watch me!" border="0" /></a></td></tr>';
  5. unset($z[$select]);unset($i[$select]);
  6. }

Mijn truck is gewoon het gebruikte element verwijderen uit de array en daarna in de for-loop, opnieuw een random plaatje te kiezen uit de array uitgezonderd van het reeds uitgekozen plaatje. Uiteraard moet de count ook terug gebeuren.
Ik heb voor alle veiligheid dit bij beide array's gedaan, zodat ze blijven overeenkomen.
Offline Berten - 18/07/2008 10:02
Avatar van Berten PHP beginner Gewoon zoals DeviourSoul zegt je array shufflen 
Offline Koen - 18/07/2008 13:30
Avatar van Koen PHP expert
  1. <?php
  2. // images // link
  3. $i[0] = 'trailers/1.png'; $z[0] = 'http://nl.youtube.com/watch?v=';
  4. $i[1] = 'trailers/2.png'; $z[1] = 'http://nl.youtube.com/watch?v=';
  5. $i[2] = 'trailers/3.png'; $z[2] = 'http://nl.youtube.com/watch?v=';
  6. $i[3] = 'trailers/4.png'; $z[3] = 'http://nl.youtube.com/watch?v=';
  7. $i[4] = 'trailers/5.png'; $z[4] = 'http://nl.youtube.com/watch?v=';
  8. $i[5] = 'trailers/6.png'; $z[5] = 'http://nl.youtube.com/watch?v=';
  9. $i[6] = 'trailers/7.png'; $z[6] = 'http://nl.youtube.com/watch?v=';
  10. $i[7] = 'trailers/8.png'; $z[7] = 'http://nl.youtube.com/watch?v=';
  11. $i[8] = 'trailers/9.png'; $z[8] = 'http://nl.youtube.com/watch?v=';
  12. $i[9] = 'trailers/10.png'; $z[9] = 'http://nl.youtube.com/watch?v=';
  13. $i[10] = 'trailers/11.png'; $z[10] = 'http://nl.youtube.com/watch?v=';
  14.  
  15. // tabel openen
  16. echo '<table>';
  17. // array shufflen
  18. shuffle($numbers);
  19. // nummertje
  20. $nummertje = 0;
  21. // display the thumnails
  22. foreach($numbers as $k=>$v) {
  23. if($nummertje >= 2) {
  24. break;
  25. }
  26. echo '<tr><td><a href="'.$z[$k].'"><img src="'.$i[$k].'" alt="Watch me!" border="0" /></a></td></tr>';
  27. $nummertje++;
  28. }
  29.  
  30. // afsluiten
  31. echo '</table>';
  32. ?>

Zoiets? 
Offline Berten - 18/07/2008 13:37
Avatar van Berten PHP beginner shuffle($i);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s