我似乎在检查数组中是否存在字符串时遇到问题。我的问题可能有一个非常明显的答案,请原谅我,但我是PHP的新手。
无论如何,这是我的代码:
while($row = mysql_fetch_assoc($result))
{
$result_array[] = $row;
}
if (in_array("496891", $result_array))
{
echo "true";
}
else
{
echo "false";
}
数组如下所示:
Array ( [0] => Array ( [ID] => 496891 ) [1] => Array ( [ID] => 1177953 ))
我的代码总是回应错误。谁知道我做错了什么?
由于
答案 0 :(得分:3)
你有一个嵌套数组,必须检查每个项目,如下所示:
function in_multidimensional_array($val, $array) {
foreach($array as $key => $value) {
if (in_array($val, $array[$key])) {
return true;
}
}
return false;
}
现在,您可以使用以下命令检查值496891
是否存在:
if(in_multidimensional_array('496891', $result_array)) {
print 'true';
} else {
print 'false';
}
答案 1 :(得分:2)
只有在MySQL循环中只有一行时,Krister的解决方案才有效。这将检查所有结果。
while($row = mysql_fetch_assoc($result))
{
$result_array[] = $row;
}
$found = false;
foreach ($result_array as $v) {
if (in_array("496891", $v)) {
$found = true;
}
}
if ($found == true)
echo 'true';
else
echo 'false';
答案 2 :(得分:0)
您正在搜索字符串,但您的数组正在保存数值。您需要确保将其作为字符串专门插入以使其返回true,或者在搜索之前将每个字段作为字符串插入。