2016-03-20 15 views
0

Wie zu überprüfen und eine Auswahlbox Wert gegen eine Reihe von PHP Arrays zBAuswahlfeld Optionswert geprüft

<select id="person" name="person"> 
<option value="jane">Jane</option> 
<option value="julia">Julia</option> 
</select> 

PHP Arrays

$person_1 = ["Id"=> "1", "name"=>"Jane", "age"=>"23" ] 
$person_2 = ["Id"=> "2", "name"=>"Julia", "age"=>"29"] 

passen finden Wenn Benutzer jane und wählen Sie den Wert überprüfen gegen diese beiden Arrays. Wenn es mit einem übereinstimmt, drucken Sie das Alter dieser bestimmten Person.

+0

Don Verwenden Sie keine separaten Variablen, verwenden Sie ein mehrdimensionales Array. Und Ihre Syntax für assoziative Arrays ist falsch, '=' sollte '=>' sein. – Barmar

+0

Das Array wird von for-each-Schleife generiert. Irgendein Hinweis für mich? – rushdi

+0

Wie erstellt eine Schleife Variablen mit unterschiedlichen Namen, anstatt sie alle auf ein einzelnes Array zu übertragen? – Barmar

Antwort

3

Verwenden Sie ein mehrdimensionales Array, damit Sie es durchlaufen können, um den passenden Namen zu finden.

$people = [ 
    ["Id" => "1", "name"=>"Jane", "age"=>"23" ], 
    ["Id" => "2", "name"=>"Julia", "age"=>"29"] 
]; 

foreach ($people as $person) { 
    if ($person['name'] == $_POST['person']) { 
     echo "Age is {$person['age']}"; 
     break; 
    } 
} 

Jedes Mal, wenn Sie sich selbst zu finden Variablen mit numerischen Namen wie $person1 und $person2 zu schaffen, ist es ein sicheres Zeichen, dass Sie ein Array verwenden sollten sie alle in einer einzigen Variablen zu sammeln.

Wenn wird es viele Menschen geben, wäre es effizienter sein $people ein assoziatives Array zu machen:

$people = [ 
    "Jane" => ["Id" => "1", "name"=>"Jane", "age"=>"23" ], 
    "Julia" => ["Id" => "2", "name"=>"Julia", "age"=>"29"] 
]; 

Dann brauchen Sie keine Schleife, nur tun:

$person = $people[$_POST['name']]; 
+0

Vielen Dank. Das Hauptproblem besteht jedoch darin, den Wert der Auswahlbox für die Arrays zu überprüfen. Wenn iset den Wert "jane" setzt, dann überprüfe es in den Arrays und danach, wenn es in Array existiert, dann drucke das Alter oder die ID aus. – rushdi

+0

Der Wert der Auswahlbox ist '$ _POST ['person']', mein Code testet das gegen das Array. – Barmar

+0

Verstanden. Vielen Dank. – rushdi