5 aus 10 Fragen zufällig auswählen

ingo preuss

Mitglied
Hallo,
ich habe mir ein zweidimensionales Array gebaut, in dem Frage und dazugehörige Antwort in einer Zeile liegen:
Code:
$fragen = array(array(' Berlin ',' Welche Stadt ist die Haupstadt von Deutschland? '),
                array(' XHTML ',' In welcher Sprache werden Webseiten erstellt? '),
                array(' Browser ',' Mit welchem Programm können Sie Webseiten betrachten? '
...
));
Dazu die Schleifen zum ausgeben der Fragen:
Code:
for($row=0; $row<10; $row++){
     for($column=0; $column<2; $column++){
             $zufallsfragen = $fragen[$row][$column];
    }
}

for(i=0; i<5; i++) {
    echo $zufallsfragen[rand(0,9)];
}

Ich bekomme folgende Fehlermeldung:
Code:
Parse error: parse error, unexpected '=', expecting ';' in  C:\Programme\xampp\htdocs\php9\quiz.php on line 28
Die Fehlermeldung bezieht sich auf die erste Zeile der letzten for-Schleife.

Gruß, Ingo
 
Hallo.
Du hast die $ Zeichen bei den Variablen vergessen:
PHP:
for($i=0; $i<5; i++) {
    echo $zufallsfragen[rand(0,9)];
}
 
Probier mal Folgendes:
PHP:
<?php

	$i = 1;
	shuffle($fragen);
	foreach( $fragen as $item ) {
		echo $item;
		if( $i++ >= 5 ) {
			break;
		}
	}

?>
 
Hallo,

Gumbo hat gesagt.:
Probier mal Folgendes:
PHP:
<?php

    $i = 1;
    shuffle($fragen);
    foreach( $fragen as $item ) {
        echo $item;
        if( $i++ >= 5 ) {
            break;
        }
    }

?>
habe die Schleife so übernommen. Wundere mich jedoch, dass mir 5x Array ausgegeben wird. Ich denke das liegt an meinem 2-dimensionalen Array. Gebe ich aber ein geschachteltes $fragen($fragen) als Argument an meckert der Debugger.

Gruß, Ingo
 
Zuletzt bearbeitet:
Da es sich bei der Variable $item wiederum um ein Array handelt, wird nur der Datentyp ausgegeben. Was möchtest du denn realisieren?
 
Es soll immer der Inhalt des zweiten Feldes aus den einzelnen Arrays ausgegeben werden, wobei die 5 Fragen nicht zusammen ausgegeben werden sollen.
1. erste Frage von den fünf ausgewählten => Antwort wird mit erstem Feld im Array verglichen
2. Sprung zu feedback.php => richtig / falsch
3. Sprung zu auswertung.php / naechste Frage
4. zweite Frage von den fünf ausgewählten => usw.

Gruß, Ingo
 
5 zufällige Fragen aus einem Fragenkatalog von 10 Fragen:
Code:
    for( $i=0; $i<5; $i++ ) {
        mt_srand((double)microtime()*100000);
        $zufall = mt_rand('0','10');
        $ausgabe = $fragen[$zufall];
        echo $ausgabe . '<br>';
    }
Je nach Durchlauf werden Fragen doppelt und dreifach gestellt. Wie kann jetzt dafür sorgen, dass Fragen die bereits gestellt wurden nicht nochmal auftauchen?

Gruß, Ingo
 
Speichere einfach die Fragen, die bereits gestellt wurden, in einem zusätzlichen Array und prüfe vor Auswahl einer neuen Frage, ob sie bereits im Bereits-gestellte-Fragen-Array vorhanden ist.
 
Zurück