[英]Use imploded result from MySql Query in PHP in_array() statement
嘗試在in_array()
語句中使用從mysql查詢編譯而成的逗號分隔值字符串。 問題是該語句失敗,因為即使array的粘貼輸出確實起作用, $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
您需要檢查if (in_array(184, $array1)) {...
代替。 $array1
已經在單獨的元素中包含了每個數字,就像第二個if
條件中那樣,例如
array(77,82,85,90,180,181,182,183,184,185)
當你做array($array)
你得到一個帶有一個element的數組,整個內嵌字符串,例如
array("77,82,85,90,180,181,182,183,184,185")
我不確定您在做什么,但是看起來您只需在查詢中包含184就可以消除整個in_array
問題
SELECT id FROM quiz WHERE quiz_page = '2' AND id = 184
並檢查查詢是否返回任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.