• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

4 Arrays mit jeweils 2 Werten per Zufall ausgeben, Hilfe

tildeluxe

Mitglied
Hallo liebes Forum,

ich brauche mal wieder Hilfe: Ich habe 4 Arrays, die jeweils 2 Werte beinhalten. Nun sollen die 4 Arrays per Zufall ausgegeben werden, aber deren Inhalt nicht. Wie kann ich das realiseren? Sollte ich überhaupt mit Arrays arbeiten?


Ansatz (falsch):
PHP:
$review[0] = array("name1", "message1");
$review[1] = array("name2", "message2");
$review[2] = array("name3", "message3");
$review[3] = array("name4", "message4");
shuffle($review);
foreach ($review as $end) {
    echo $end;
}

Die Ausgabe soll dann z.B.

name3: message3

sein. (eben zufällig)

Ich hoffe, dass ihr mir helfen könnt.
Danke!
 
Nach shuffle() hat jedes Array-Element einen zufälligen Index. Du kannst also einfach auf z.B. den Index 0 zugreifen, dieser sollte zufällig sein, nachdem shuffle() angewandt wurde.

PHP:
echo $review[0][0]." ".$review[0][1];

Auch möglich wäre eine Lösung mit array_rand().
 
Vielen Dank! Das Script funktioniert nun:
PHP:
<?php
$review[0] = array("name1", "message1");
$review[1] = array("name2", "message2");
$review[2] = array("name3", "message3");
$review[3] = array("name4", "message4");
shuffle($review);
echo $review[0][0]." ".$review[0][1];
?>

Gibt es vll. eine smartere Lösung? Was meinst du mit array_rand() ?
 
array_rand() liefert einen zufälligen Array-Index. Je nach Größe des Arrays kann das performanter sein als die shuffle()-Lösung, da bei shuffle() alle Elemente einen neuen Index erhalten.

PHP:
$zufallsindex = array_rand($review);
echo $review[$zufallsindex][0]." ".$review[$zufallsindex][1];
 
Zuletzt bearbeitet:
Zurück
Oben