7

mysql_fetch_array を実行するたびに、配列が重複した値で返されます

Array
(
    [0] => 1
    [row_id] => 1
    [1] => some text
    [first_field] => some text
    [2] => some text
    [second_field] => some text 
}

しかし、配列内の単一の結果のみが必要です。使用してみました

mysql_fetch_array($data, MYSQL_ASSOC);

しかし、これは違いはありません。

4

7 に答える 7

15

これは の意図した機能ですmysql_fetch_array()。「重複」を持たずに連想配列だけを持ちたい場合は、mysql_fetch_assoc()代わりに使用してください。

例:

while ($row = mysql_fetch_assoc($data)) { ... }
于 2012-08-14T17:25:03.167 に答える
4

mysql_fetch_array は、クエリ実行への応答として返される結果セットを、連想配列と数値配列の両方として返します。結果セットを連想配列として返すには、mysql_fetch_assoc 関数を使用する必要があります。結果セットを数値配列として返すには、mysql_fetch_row 関数を使用する必要があります。

于 2012-08-14T18:36:42.507 に答える
1

連想配列には mysql_fetch_assoc() を使用し、数値配列には mysql_fetch_row を使用します。

于 2012-08-14T17:25:13.850 に答える
1

mysql_fetch_array()連想キー (クエリで指定されたフィールド名) と整数位置キー (つまり、0 は最初のフィールド、1 は 2 番目のフィールドなど) の両方を含む配列を返します。これは、どちらの方法でもデータにアクセスできるようにするためです。

名前付きのキーだけが必要mysql_fetch_assoc() な場合は、mysqli 関数を使用する必要があります。これは、ここにいるすべての人が古い mysql_* 関数を使用することを非難するからです。

于 2012-08-14T17:26:38.607 に答える
0

マニュアルから:

フェッチされた行に対応する文字列の配列を返します。それ以上行がない場合は FALSE を返します。返される配列の型は、result_type の定義方法によって異なります。MYSQL_BOTH (デフォルト) を使用すると、連想インデックスと数値インデックスの両方を持つ配列が得られます。MYSQL_ASSOC を使用すると、連想インデックスのみが取得され (mysql_fetch_assoc() が機能するため)、MYSQL_NUM を使用すると、数値インデックスのみが取得されます (mysql_fetch_row() が機能するため)。

つまり、MYSQL_BOTH がデフォルトであるため、両方が返されます。代わりに MYSQL_ASSOC または MYSQL_NUM を指定して、連想配列または数値配列を取得できます。代わりに、連想配列のみを返すmysql_fetch_assoc()を使用することもできます。

于 2012-08-14T17:25:13.290 に答える
0

mysql_fetch_array() は、インデックス付き配列と連想配列を返します。ただし、mysql_fetch_assoc() は連想配列のみを返します。

MYSQLI_NUM パラメータで使用される mysql_fetch_array がインデックス付き配列のみを返す場合。例: mysql_fetch_array($resultset,MYSQLI_NUM)

于 2019-02-17T19:57:54.113 に答える