login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Array's uitlezen

Offline roelh - 24/01/2007 18:36
Avatar van roelhPHP gevorderde Heey allemaal,

Ik heb een Array.
  1. $arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');

Nu wil ik dat hij er 3 willekeurige ploegen uit pakt en dan laat zien op het scherm.
Wie kan me aub opgang helpen?

10 antwoorden

Gesponsorde links
Offline Ultimatum - 24/01/2007 18:41
Avatar van Ultimatum PHP expert
  1. <?php
  2. $aantal = count($arr);
  3. $random = rand(0, $aantal);
  4.  
  5. $arr[$random];
  6. ?>


niet getest..
Offline roelh - 24/01/2007 18:44
Avatar van roelh PHP gevorderde Thanks, hij werkt.
Alleen hij pakt nu maar 1 ploeg. hoe kan ik ervor zorgen dat hij dan 3 ploegen pakt?
Offline Gerard - 24/01/2007 18:48
Avatar van Gerard Ouwe rakker
  1. <?php
  2. $arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
  3.  
  4. $randomSelected = array_rand($arr, 3);
Offline roelh - 24/01/2007 19:02
Avatar van roelh PHP gevorderde Thanks voor het helpen allemaal.
Ik heb het nu zo:
  1. <?
  2. $arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
  3. $aantal = count($arr);
  4. $random = array_rand($arr, 4);
  5.  
  6. echo $arr[$random[0]];
  7. echo "<br>";
  8. echo $arr[$random[1]];
  9. echo "<br>";
  10. echo $arr[$random[2]];
  11. echo "<br>";
  12. echo $arr[$random[3]];
  13. echo "<br>";
  14. echo $arr[$random[4]];
  15. echo "<br>";
  16. ?>
Offline Gerard - 24/01/2007 19:04
Avatar van Gerard Ouwe rakker Je kan natuurlijk ook gewoon werken met for/foreach om het dynamisch te maken en die herhalende code weg te werken.
Offline roelh - 24/01/2007 19:10 (laatste wijziging 24/01/2007 19:16)
Avatar van roelh PHP gevorderde Klopt, kan ook ja.
Ga ik even proberen te fixen

edit:
Heb nu dit, werkt allemaal.
Bedankt!
  1. <?
  2. $arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
  3. $aantal = count($arr);
  4. $random = array_rand($arr, 4);
  5.  
  6. for($i=0; $i <= $aantal; $i++){
  7. echo $arr[$random[$i]];
  8. echo "<br>";
  9. }
  10. ?>
Offline Gerard - 24/01/2007 19:15
Avatar van Gerard Ouwe rakker De php functie array_rand() geeft dus ook alleen maar de indexes terug die random gekozen zijn. Misschien is het dus voor jou handig dat je onderstaande functie gebruikt:
  1. <?php
  2.  
  3. function array_rand_values($aGivenArray, $iRequested = 1) {
  4.  
  5. $aReturn = array();
  6. $aIndexes = array_rand($aGivenArray, $iRequested);
  7.  
  8. foreach ($aIndexes as $iIndex) {
  9.  
  10. array_push($aReturn, $aGivenArray[$iIndex]);
  11.  
  12. }
  13.  
  14. return $aReturn;
  15.  
  16. }
  17.  
  18. $array = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
  19.  
  20. $randomSelected = array_rand_values($array, 3);
  21.  
  22. print_r($randomSelected);


Op die manier krijg je dus al de waardes terug, niet alleen de indexes.
Offline roelh - 24/01/2007 19:18
Avatar van roelh PHP gevorderde Hmm, sorry, maar snap niet zo.
Kun je misschien beetje uitleggen?
Wat bedoel je ermee dat je niet alleen de indexes terug krijgt?
Ik zie, eerlijk gezegd, weinig verschil tussen de code van jouw en mij als ik ze uitvoer.
Offline Gerard - 24/01/2007 19:23
Avatar van Gerard Ouwe rakker De PHP.net: array_rand functie geeft alleen random index getallen terug van de array die je invoert en niet echte waardes. Voor jouw originele array krijg je dus bijvoorbeeld een array terug met de waarden:
0, 2 en 3.

Daarna moest jij zelf dit doen:
  1. echo $arr[$random[$i]];


Met mijn functie array_rand_values krijg je al de waardes terug, dus:
ajax, psv, feyenoord

Op die manier bespaar je je dus het nesten van je variabelen als in $array[$random[$i]]; en kan je gewoon elk element van de array die je terugkrijgt van mijn functie, direct echoën.
Offline roelh - 24/01/2007 20:36
Avatar van roelh PHP gevorderde Oke, thanks 
Ga eraan werken
Super bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s