簡體   English   中英

在PHP in_array()語句中使用來自MySql Query的內爆結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM