次のコードを実行すると、
<code class="php">$table = get_personel_table(1); function get_personel_table($id) { global $connection; $query = "SELECT * FROM employees WHERE id=$id ORDER BY id ASC"; $query_result = mysqli_query($connection, $query); confirm_query($query_result); $query_result_array = mysqli_fetch_array($query_result); return $query_result_array; // returns associative array! } foreach($table as $table_var) { echo "<td>$table_var</td>"; }</code>
の結果が発生します
1 1 1 1 jordan jordan 9108121544 9108121544 testEmail testEmail testAddress testAddress testCounty testCounty
mysqli_fetch_array のデフォルトの動作は、結果行の連想インデックスと数値インデックスの両方を返すことです。これは、特定の状況では望ましくありません。返されるキーを制限するには、関数の 2 番目のパラメーターを使用できます:
<code class="php">$query_result_array = mysqli_fetch_array($query_result, MYSQLI_NUM); // numeric keys only $query_result_array = mysqli_fetch_array($query_result, MYSQLI_ASSOC); // associative keys only</code>
または、次の関数を使用できます:
<code class="php">$query_result_array = mysqli_fetch_row($query_result); // numeric keys only $query_result_array = mysqli_fetch_assoc($query_result); // associative keys only</code>
数値キーまたは連想キーのみを使用するを使用すると、出力内のデータの重複を排除できます。
以上がMySQLi が配列をフェッチすると出力が 2 倍になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。