1

アレイと格闘し続けます!これはおそらく答えるのは簡単です。

PHPを使用してMYSQLからデータセットを取得しています。1行目(つまりmysql_fetch_array)の配列を取得します。通常、これをループして各値を取得しますが、この場合はすでにループの途中にあり、特定の値が完全なデータセット(複数の行になります)に存在するかどうかを確認する必要があります)。

ループして、すべての値を次のような配列に入れることができると思いました。

$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...私はこれで初心者になるのが嫌いです。

4

1 に答える 1

3

関数mysql_fetch_assocが配列を返しました。

print_r($ map_set)を作成すると、それが2次元配列であることがわかります。確かにin_arrayは機能していません。

に置き換え$map_set[] = $row;$map_set[] = $row["MapId"];、再試行してください。

于 2013-01-01T05:54:33.170 に答える