2016-04-01 3 views
0

Ich habe die unten stehende Funktion, die eine der Fragen des Arrays nach dem Zufallsprinzip fragen wird, und die Antwort muss an die Datenbank mit der Indexnummer der gestellten Frage gesendet werden gespeichert und wieder bei einem event wie password recovery etc ...PHP Holen Sie sich einen Index und ein Element eines Arrays

Mein Problem ist, ich habe nicht in der Lage, eine Methode oder Option zu finden, um sowohl die Indexnummer und die Frage zusammen zu bekommen gefragt.

Ich habe versucht, den Schlüssel, search_array und andere Möglichkeiten, aber noch ohne Erfolg.

Bitte helfen

Dank

<?php 
    function secQ(){ 
     $questions = array(); 
     $questions[0] = "first question"; 
     $questions[1] = "second question"; 
     $questions[2] = "third question"; 
     $questions[3] = "fourth question"; 
     $questions[4] = "fifth qestion"; 
     $questions[5] = "sixth question"; 
     $rand_keys = array_rand($questions, 2); 
    } 
    ?> 
+1

Sie kehren nichts von der Funktion –

+0

Gut Anruf auf diesem Mawia HL –

Antwort

0

Hier ist ein Weg, den Schlüssel und Frage in einem Array zu dem Anrufer zurückzukehren.

<?php 
function secQ(){ 
    $questions = array(); 
    $questions[0] = "first question"; 
    $questions[1] = "second question"; 
    $questions[2] = "third question"; 
    $questions[3] = "fourth question"; 
    $questions[4] = "fifth qestion"; 
    $questions[5] = "sixth question"; 

    $rand_key = array_rand($questions, 1); 

    return array($rand_key, $questions[$rand_key]); 
} 

$q = secQ(); 
echo 'key is ' . $q[0]; 
echo 'question is ' . $q[1]; 
?> 
+0

Das ist, was ich gesucht habe, vielen Dank, jetzt muss ich den Schlüssel erhalten und in der Datenbank speichern, wenn es benötigt wird. –

+0

Ich habe das Skript hinzugefügt und es funktionierte perfekt, obwohl manchmal der Schlüssel für die Frage, die in der Datenbank gespeichert ist, nicht die ist, die ich im Formular sehe, werde ich meine Frage hier mit Ihrer Antwort bearbeiten, danke für Ihre Hilfe im Voraus . –

+0

Ich fürchte, du solltest das nicht tun. Die ursprüngliche Frage wird beantwortet und wenn andere diese Frage in einer Suche finden, passt diese Antwort nicht zu Ihrer zweiten Frage. Was ist der Punkt dieser Website, d. H. Bereitstellung von durchsuchbaren Fragen mit Antworten. Ich werde deine Frage zurücksetzen. Bitte stellen Sie eine andere Frage, ich werde danach Ausschau halten. – RiggsFolly

0

Sie sollten wahrscheinlich dies manuell tun. Unten ist eine generische Funktion, die für jedes Eingabearray funktionieren sollte.

Erstellen Sie zuerst eine Zufallszahl basierend auf der Größe des Arrays und geben Sie dann den Schlüssel und den Wert zurück, die dieser Zahl entsprechen. Hinweis: Ich mache das, damit die Methode mit assoziativen Arrays arbeiten kann.

function randomKeyValueFromArray($array) { 
     $randomKey = rand(0,count($array)); 
     return [ array_keys($array)[$randomKey], array_values($array)[$randomKey] ]; 

} 

Wie zu verwenden:

$questions = array(); 
$questions[0] = "first question"; 
$questions[1] = "second question"; 
$questions[2] = "third question"; 
$questions[3] = "fourth question"; 
$questions[4] = "fifth qestion"; 
$questions[5] = "sixth question"; 

$randomQuestion = randomKeyValueFromArray($questions); 

$questionKey = $randomQuestion[0]; 
$questionValue = $randomQuestion[1]; 
0

Ich habe diese Lösung

<?php 
function secQ() 
{ 
    $questions = [ 
     "first question", 
     "second question", 
     "third question", 
     "fourth question", 
     "fifth qestion", 
     "sixth question", 
    ]; 

    $keys = array_keys($questions); 

    $rand_keys = array_rand($keys, 2); 

    $result = array(); 
    foreach ($rand_keys as $key) { 
     $result[$key] = $questions[$key]; 
    } 
    return $result; 
} 

var_dump(secQ()); 

Erstes Ergebnis herausgefunden:

array(2) { 
    [0]=> string(14) "first question" 
    [1]=> string(15) "second question" 
} 

Zweites Ergebnis:

array(2) { 
    [4]=>string(13) "fifth qestion" 
    [5]=>string(14) "sixth question" 
} 
Verwandte Themen