login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP random content (Opgelost)

Offline DrB - 09/02/2009 11:21
Avatar van DrBHTML interesse Hoi,

Ik heb op mijn website verschillende blokken met content. Nu wil ik deze in random volgorde tonen als de bezoeker op deze pagina komt.

Dus bijv:

Tekst1
Tekst2
Tekst3

De ene keer ziet de bezoeker Tekst1 bovenaan en de andere keer Tekst 3. Onderstaande code had ik al gevonden, maar die laat maar 1 tekst random zien, dus die pakt of tekst 1, of tekst 2, of tekst 3.

  1. <?php
  2. srand((float) microtime() * 10000000);
  3. $input = array("tekst1", "tekst2", "tekst3", "tekst4", "tekst5");
  4. $rand_keys = array_rand($input, 2);
  5. echo $input[$rand_keys[0]] . "\n";
  6. echo $input[$rand_keys[1]] . "\n";
  7. ?>

9 antwoorden

Gesponsorde links
Offline nick5556 - 09/02/2009 11:25
Avatar van nick5556 PHP beginner Dan moet je geen rand gebruiken, probeer shuffle().
Offline finduilas - 09/02/2009 11:27
Avatar van finduilas PHP gevorderde http://www.jona...domize.htm
Offline nick5556 - 09/02/2009 11:37
Avatar van nick5556 PHP beginner

Jou functie doet het zelfde als PHP.net: shuffle
Offline DrB - 09/02/2009 11:38 (laatste wijziging 09/02/2009 11:41)
Avatar van DrB HTML interesse En hoe pas ik dit voor tekst toe:

  1. <?php
  2. $numbers = range(1, 20);
  3. srand((float)microtime() * 1000000);
  4. shuffle($numbers);
  5. foreach ($numbers as $number) {
  6. echo "$number ";
  7. }
  8. ?>
Offline Kevin - 09/02/2009 11:44
Avatar van Kevin Crew Ajax/REST In plaats van nummertjes in een range gebruik je nu tekst 1, tekst 2, ...
Offline Wim - 09/02/2009 11:48
Avatar van Wim Crew algemeen als je slechts 1 tekst wilt tonen kan dit ook dmv PHP.net: rand. De minimum grens is 0 en de maximum grens is PHP.net: count-1
Offline DrB - 09/02/2009 11:52
Avatar van DrB HTML interesse
  1. <?php
  2. $numbers = range("tekst1", "tekst2", "tekst3");
  3. srand((float)microtime() * 1000000);
  4. shuffle($numbers);
  5. foreach ($numbers as $number) {
  6. echo "$number ";
  7. }
  8. ?>


Dat gaat niet werken. En ik wil niet 1 tekst tonen, maar meerdere  Het zijn verschillende tabellen met tekst, die random boven elkaar getoond moeten worden.
Offline nick5556 - 09/02/2009 11:56
Avatar van nick5556 PHP beginner Als je een array hebt met tekst/nummertjes dan kan je gewoon shuffle gebruiken hoor..

  1. $array = array(1,2,3,4);
  2. shuffle($array);
  3. foreach($array as $ar)
  4. {
  5. echo $ar.'<br />';
  6. }


Dan krijg je bv dit als return:
1
3
2
4

Als ik je goed begrijp is dat je bedoeling, of niet?
Offline DrB - 09/02/2009 12:00
Avatar van DrB HTML interesse Dat is inderdaad de bedoeling, bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s