gpt4 book ai didi

php - 在 PHP in_array() 语句中使用 MySql 查询的内爆结果

转载 作者:行者123 更新时间:2023-11-29 07:21:16 26 4
gpt4 key购买 nike

尝试在 in_array() 语句中使用从 mysql 查询编译而来的逗号分隔值字符串。问题是该语句失败,因为 $array 的输出在 in_array() 函数中不起作用,即使粘贴的 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) 时,你会得到一个包含一个元素的数组,即整个内爆字符串,例如

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

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

关于php - 在 PHP in_array() 语句中使用 MySql 查询的内爆结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com