Array's uitlezen
roelh - 24/01/2007 18:36
PHP gevorderde
Heey allemaal,
Ik heb een Array.
$arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
$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
Ultimatum - 24/01/2007 18:41
PHP expert
<?php
$aantal = count($arr);
$random = rand(0, $aantal);
$arr[$random];
?>
<?php
$random = rand ( 0 , $aantal ) ;
$arr [ $random ] ;
?>
niet getest..
roelh - 24/01/2007 18:44
PHP gevorderde
Thanks, hij werkt.
Alleen hij pakt nu maar 1 ploeg. hoe kan ik ervor zorgen dat hij dan 3 ploegen pakt?
Gerard - 24/01/2007 18:48
Ouwe rakker
<?php
$arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
$randomSelected = array_rand($arr, 3);
<?php
$arr = array ( 'ajax' , 'psv' , 'feyenoord' , 'vitesse' , 'twente' ) ;
roelh - 24/01/2007 19:02
PHP gevorderde
Thanks voor het helpen allemaal.
Ik heb het nu zo:
<?
$arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
$aantal = count($arr);
$random = array_rand($arr, 4);
echo $arr[$random[0]];
echo "<br>";
echo $arr[$random[1]];
echo "<br>";
echo $arr[$random[2]];
echo "<br>";
echo $arr[$random[3]];
echo "<br>";
echo $arr[$random[4]];
echo "<br>";
?>
<?
$arr = array ( 'ajax' , 'psv' , 'feyenoord' , 'vitesse' , 'twente' ) ;
?>
Gerard - 24/01/2007 19:04
Ouwe rakker
Je kan natuurlijk ook gewoon werken met for/foreach om het dynamisch te maken en die herhalende code weg te werken.
roelh - 24/01/2007 19:10 (laatste wijziging 24/01/2007 19:16)
PHP gevorderde
Klopt, kan ook ja.
Ga ik even proberen te fixen
edit:
Heb nu dit, werkt allemaal.
Bedankt!
<?
$arr = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
$aantal = count($arr);
$random = array_rand($arr, 4);
for($i=0; $i <= $aantal; $i++){
echo $arr[$random[$i]];
echo "<br>";
}
?>
<?
$arr = array ( 'ajax' , 'psv' , 'feyenoord' , 'vitesse' , 'twente' ) ;
for ( $i = 0 ; $i <= $aantal ; $i ++ ) {
}
?>
Gerard - 24/01/2007 19:15
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:
<?php
function array_rand_values($aGivenArray, $iRequested = 1) {
$aReturn = array();
$aIndexes = array_rand($aGivenArray, $iRequested);
foreach ($aIndexes as $iIndex) {
array_push($aReturn, $aGivenArray[$iIndex]);
}
return $aReturn;
}
$array = array('ajax', 'psv', 'feyenoord', 'vitesse', 'twente');
$randomSelected = array_rand_values($array, 3);
print_r($randomSelected);
<?php
function array_rand_values( $aGivenArray , $iRequested = 1 ) {
$aIndexes = array_rand ( $aGivenArray , $iRequested ) ;
foreach ( $aIndexes as $iIndex ) {
}
return $aReturn ;
}
$array = array ( 'ajax' , 'psv' , 'feyenoord' , 'vitesse' , 'twente' ) ;
$randomSelected = array_rand_values( $array , 3 ) ;
Op die manier krijg je dus al de waardes terug, niet alleen de indexes.
roelh - 24/01/2007 19:18
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.
Gerard - 24/01/2007 19:23
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:
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.
Gesponsorde links
Dit onderwerp is gesloten .