【发布时间】:2012-12-15 23:58:32
【问题描述】:
我继续与数组斗争!这可能很容易回答。
我正在使用 PHP 从 MYSQL 检索数据集。我得到一个具有第一行的数组(ala mysql_fetch_array)。通常我会遍历这个并获取每个值,但在这种情况下,我已经处于循环中间,我需要找出完整数据集中是否存在特定值(这将超过 1 行)。
我想我可以循环并将所有值放入一个数组中,如下所示:
$query = "SELECT MapId FROM Map Where GameId = $gl_game_id";
$result_set = mysql_query($query, $connection);
confirm_query($result_set);
$map_set = array();
while($row = mysql_fetch_assoc($result_set)) {
$map_set[] = $row;
}
当我 print_r 这个时,我确实得到了完整的数据集(例如,表 Map 中的 MapId 的所有行)。
所以现在,当我去那里查看是否存在一个值(来自另一个循环的)时,它不会找到它。
所以我的代码看起来像:
if (in_array($i, $map_set)) {
echo "yes, it's there baby!";
}
但它不起作用。我尝试对数组进行硬编码,这确实有效。所以我构造数组的方式有问题,这个函数不喜欢它。
if (in_array($i, array(40,12,53,65))) {
echo "yes, it's there baby!";
}
arrrg...我讨厌在这方面成为菜鸟。
【问题讨论】:
-
你的 $map_set 数组的结构是什么,你能把它也贴出来吗..
-
顺便说一句,mysql 扩展自 PHP 5.5.0 起已弃用,将来将被删除。相反,使用 MySQLi 或 PDO_MySQL 扩展
-
@Jeff - 我们必须先查看您的 $map_set 结构来帮助您解决这个问题:P
-
@Sudhir 是的,我知道,我还没有做出改变,但会做到的。谢谢。响应中的解决方案奏效了。