2017-01-03 2 views
0

Ich versuche, 2 verschiedene Arrays mit der gleichen Zufallsvariable zurückgeben. So habe ich:Rückgabe von 2 verschiedenen Arrays mit der gleichen Zufallsvariable

function TransTest() { 
    $TransQ = array(); 
    $TransA = array(); 

    $TransQ[0] = "Q1"; 
    $TransQ[1] = "Q2"; 
    $TransQ[2] = "Q3"; 
    $TransQ[3] = "Q4";  

    $TransA[0] = "Ans 1"; 
    $TransA[1] = "Ans 2"; 
    $TransA[2] = "Ans 3"; 
    $TransA[3] = "Ans 4";  

    $index = rand(0, count($TransQ)-1); 

    return $TransQ[$index]; 
} 

Also das gibt im Grunde eine zufällige Frage aus dem $TransQ Array. Was ich tun möchte, ist, die jeweilige Antwort auf die Frage zurückzugeben.

Etwas ähnliches wie:

return ($TransQ[$index] && $TransA[$index]); 

Aber das scheint nicht zu funktionieren. Bitte helfen Sie.

+0

'return ['Frage' => $ TransQ [$ index], 'Answer' => $ TransA [$ index]];' –

Antwort

2

nur ein Array zurück:

return array($TransQ[$index], $TransA[$index]); 

Dann Zugang:

$result = TransTest(); 
echo $result[0] . ' is ' . $result[1]; 

oder assoziativ:

return array('q' => $TransQ[$index], 'a' => $TransA[$index]); 

Dann:

$result = TransTest(); 
echo $result['q'] . ' is ' . $result['a']; 

Oder in jedem der oben genannten Fälle:

list($question, $answer) = TransTest(); 
echo $question . ' is ' . $answer; 

Ein anderer Weg (wahrscheinlich nicht die beste Wahl für Ihren Fall ist), ist Referenzen & zu verwenden:

function TransTest(&$q=null, &$a=null) { 
    //code 
    $q = $TransQ[$index]; 
    $a = $TransA[$index]; 
} 

Dann:

TransTest($question, $answer); 
echo $question . ' is ' . $answer; 
+0

Vielen Dank für Ihre umfassende Antwort, das funktioniert perfekt! Schätze die Hilfe! – Kieran

Verwandte Themen