2013-06-17 3 views
0

У меня есть 2 переменные, для $arrAns он содержит другой ответ, который пользователь выбирает для этого флажка. Пример для $ arrAns будет 1,2,3. И для $arr, это переменная option, которая содержит все варианты, которые задает вопрос. Пример $arr будет 1,2,3,4,5,6.if else Сравнение двух переменных php

Вот код, по которому я пытаюсь сравнить, если $ arrAns == $ arr, то флажок будет «проверен». иначе, это будет пустой пробел.

Но когда я попытался использовать коды, выбор пользователя - 1,2,3. Оно работает. Но если пользователь выбирает 2,3,4, то никакие опции не будут «проверены». И если пользователь выбирает 1,3,4, только опция 1 будет «проверена».

Есть ли что-то не так с логикой в ​​промежутке между? При необходимости помощи, спасибо!

<?php if ($arrAns[$i] == $arr) { 
?> 
    <input type="checkbox" name="<?php echo 'qns' . $qID; ?>[]" value="<?php echo $arr; ?>" class="required" checked/> <?php echo $arr; ?><br/> 
<?php } else { ?> 
    <input type="checkbox" name="<?php echo 'qns' . $qID; ?>[]" value="<?php echo $arr; ?>" class="required"/> <?php echo $arr; ?><br/> 
    <?php 
} ?> 
+0

Unchecked флажки не передавать данные через форму. Их просто игнорируют. Если флажок установлен, то он пройдет 1, иначе значение не будет определено. Вы можете проверить, определена ли переменная для каждой опции (если (isset (...))), и, если она существует, выполните сравнение. Или используйте in_array(), как указано ниже. –

ответ

1

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

Изменить

<?php if ($arrAns[$i] == $arr) { 

в

<?php if (in_array($arr, $arrAns)) { 
0

Вы можете сделать эффективное использование in_array():

in_array($arr, $arrAns) 
Смежные вопросы