0

我似乎在检查数组中是否存在字符串时遇到问题。我的问题可能有一个非常明显的答案,请原谅我,但我是 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 )) 

我的代码总是回显错误。有人知道我在做什么错吗?

谢谢

4

3 回答 3

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';
}
于 2012-06-22T08:01:55.073 回答
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';
于 2012-06-22T08:04:27.713 回答
0

您正在搜索一个字符串,但您的数组包含数值。您需要确保将其专门作为字符串插入以使其返回 true,或者在搜索之前将每个字段作为字符串插入。

于 2012-06-22T08:02:08.540 回答