在PHP in_array()语句中使用来自MySql Query的内爆结果

时间:2016-03-17 22:48:23

标签: php mysql

尝试在in_array()语句中使用从mysql查询编译的一串逗号分隔值。问题是该语句失败,因为$array的输出在in_array()函数中不起作用,即使数组的粘贴输出有效...

$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

1 个答案:

答案 0 :(得分:2)

您需要检查Util.initialize(this)if (in_array(184, $array1)) {...已经在单独的元素中包含了每个数字,就像您在第二个$array1条件中一样,例如

if

当你array(77,82,85,90,180,181,182,183,184,185) 得到一个包含一个元素的数组时,整个内爆字符串,例如

array($array)

我不确定您正在做什么,但看起来您可以通过在查询中包含184来消除整个array("77,82,85,90,180,181,182,183,184,185") 问题

in_array

检查查询是否返回任何内容。