尝试在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
答案 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
检查查询是否返回任何内容。