无法从数组中获取值

时间:2012-06-22 07:59:23

标签: php arrays

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

我的代码总是回应错误。谁知道我做错了什么?

由于

3 个答案:

答案 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,或者在搜索之前将每个字段作为字符串插入。