2016-03-20 2 views
0

Как проверить и найти совпадение значения выберите поле против серии PHP массивов, напримерВыберите значение параметра флажок установлен

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

PHP массивы

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

Если пользователь выбирает Джейн затем проверить значение против эти два массива. Если он совпадает с одной печатью возраста этого конкретного человека.

+0

Дон Используйте разные переменные, используйте многомерный массив. И ваш синтаксис для ассоциативных массивов неверен, '=' должен быть '=>'. – Barmar

+0

Массив генерируется для каждого цикла. Любой намек на меня? – rushdi

+0

Как цикл, создающий переменные с разными именами, вместо того, чтобы нажимать их на один массив? – Barmar

ответ

3

Используйте многомерный массив, чтобы вы могли пропустить его, чтобы найти подходящее имя.

$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; 
    } 
} 

Каждый раз, когда вы оказываетесь создавать переменные с числовыми именами как $person1 и $person2, это верный признак того, что вы должны использовать массив, чтобы собрать их всех в одной переменной.

Если там будет много людей, было бы более эффективным, чтобы сделать $people ассоциативный массив:

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

Тогда вам не нужен цикл, просто сделать:

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

Спасибо. Но основная проблема заключается в том, как проверить значение поля select на массивы. Если isset значение «jane» затем проверяет его в массивах, а после этого, если оно существует в массиве, напечатайте возраст или идентификатор. – rushdi

+0

Значение окна выбора находится в '$ _POST ['person']', мой код проверяет, что против массива. – Barmar

+0

Получил. Спасибо. – rushdi