「mysql_fetch_array」を使用すると、foreach ループで 2 倍のデータが表示されるのはなぜですか?

Patricia Arquette
リリース: 2024-10-27 20:25:30
オリジナル
827 人が閲覧しました

Why does my foreach loop display doubled data when using `mysql_fetch_array`?

配列の結果が 2 倍になる (mysql_fetch_array)

指定されたコードで、mysql_fetch_array の動作方法が原因で foreach ループで 2 倍のデータが表示されるという問題が発生しました。 。デフォルトでは、結果配列の各要素に数値インデックスと連想インデックスの両方が割り当てられます。この影響は、print_r 出力で確認できます。インデックス (0、1、2 など) とそれに対応するキー (id、部門 ID、名前など) の両方が表示されます。

この問題を解決するには、次のようにします。 mysql_fetch_array 関数呼び出しで必要なインデックスのタイプを指定できます。 2 番目のパラメータとして MYSQL_NUM を渡すと、数値キーのみを含む配列を取得できます。あるいは、MYSQL_ASSOC は連想キーのみを含む配列を返します。

<code class="php">// Get numeric keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_NUM);

// Get associative keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC);</code>
ログイン後にコピー

mysql_fetch_row 関数と mysql_fetch_assoc 関数を使用することもできます。これらの関数は、具体的にはそれぞれ数値配列または連想配列を返します。

<code class="php">// Get numeric keys only
$query_result_array = mysql_fetch_row($query_result);

// Get associative keys only
$query_result_array = mysql_fetch_assoc($query_result);</code>
ログイン後にコピー

これらのオプションを利用すると、foreach ループ内のデータの重複を回避し、結果の配列に必要なインデックスと値が確実に含まれるようにすることができます。

以上が「mysql_fetch_array」を使用すると、foreach ループで 2 倍のデータが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!