PHP in_数组函数不能与mysqli_fetch_数组一起使用

PHP in_数组函数不能与mysqli_fetch_数组一起使用,php,mysql,arrays,Php,Mysql,Arrays,如果我不使用MySQL,PHPin_array函数将按预期工作。在本例中,if语句将执行并显示包含关键字blue的数组,因为In_array函数能够在数组中找到关键字blue <?php $keyword = "blue"; $array = array("red", "green", "blue", "yellow"); if (in_array($keyword, $array)) {echo "the array contains keyword $keyword";} else

如果我不使用MySQL,PHPin_array函数将按预期工作。在本例中,if语句将执行并显示包含关键字blue的数组,因为In_array函数能够在数组中找到关键字blue

<?php
$keyword = "blue";
$array = array("red", "green", "blue", "yellow");

if (in_array($keyword, $array)) {echo "the array contains keyword $keyword";}
else {echo "the array does not contain keyword $keyword";}
?>

在_数组中从MySQL中选择红、绿、蓝、黄时,同样失败。在本例中,如果我回显$array,Web浏览器中将显示红绿蓝黄,因此我知道$array变量中有蓝色。但是,else语句执行并显示数组不包含关键字blue



如果有人在这里有任何提示或建议,我当然会非常感激。

在SQL版本中,您会得到一条记录,其中应该存在一个名为
colors
的字段。
但此字段包含字符串(可能是逗号分隔的列表,类似于
蓝色、红色、
),而不是数组

因此,当您在数组($keyword,$array)中执行
时,会触发一个PHP错误(但很可能您当前没有设置错误报告来显示它们)

您必须做的是将
颜色
字段中的内容转换为数组。
在这种情况下,如上文所述:

$array = explode(',', $row['colors']);

或者根据
字段结构的确切颜色选择合适的颜色。

谢谢您的提示!在不使用MySQL的情况下,我能够成功地使用array_key_获取要触发的“if”语句。但是,array_key_exists仍然会导致在使用MySQL获取$array时触发“else”语句。谢谢你的建议!:)哦,我以前见过有人提到爆炸,但我不认为这是处理这种情况的方法。哇,我真的很感激这个答案!
$array = explode(',', $row['colors']);