2016-03-17 2 views
0

Пытается использовать строку разделенных комой значений, скомпилированных из запроса mysql в операторе in_array(). Проблема заключается в том, что оператор не может, потому что выход $array не работает в функции in_array() даже если вставленный вывод массива делает работу ...Использовать вложенный результат из MySql Query in PHP in_array() statement

$quiz = mysql_query("SELECT id FROM quiz WHERE quiz_page = '2'"); 
$array1=array(); 
while($quiz2 = mysql_fetch_assoc($quiz)) 
{ 
    $array1[]=$quiz2["id"]; 
} 
$array = implode(",", $array1); 
echo $array; 
echo '<br>'; 

if (in_array(184, array($array))) { 
echo '184 in $array'; 
} else { 
echo '184 not in $array'; 
} 
echo '<br>'; 

if (in_array(184, array(77,82,85,90,180,181,182,183,184,185))) { 
echo '184 in array'; 
} else { 
echo '184 not in array'; 
} 

В результате приведенного выше кода:

77,82,85,90,180,181,182,183,184,185 
184 not in $array 
184 in array 

ответ

2

Вместо этого вы должны проверить if (in_array(184, $array1)) {.... $array1 уже содержит каждый из чисел в отдельных элементах, например, во втором состоянии if, например.

array(77,82,85,90,180,181,182,183,184,185) 

Когда вы делаете array($array) Вы получаете массив один элемент, весь интегрировалась строки, например

array("77,82,85,90,180,181,182,183,184,185") 

Я не знаю точно, что вы делаете с этим, но это похоже, что вы могли бы быть в состоянии устранить всю in_array проблему только в том числе 184 в запросе

SELECT id FROM quiz WHERE quiz_page = '2' AND id = 184 

И проверка того, возвращает ли запрос что-либо.

+0

Это сработало, спасибо. «184» был предназначен только для демонстрационных целей. Есть ли способ использовать mysql querry в функции in_array() с циклом while? – SailorJ

+0

Извините, я не совсем уверен, что вы имеете в виду. Из того, что я видел, выборка в цикле while - это обычный способ получить результаты запроса. –