Hasil Berganda dalam Tatasusunan (mysql_fetch_array)
Kod yang diberikan menghadapi masalah di mana gelung foreach memaparkan data dua kali ganda disebabkan oleh cara mysql_fetch_array beroperasi . Secara lalai, ia memperuntukkan kedua-dua indeks angka dan bersekutu kepada setiap elemen dalam tatasusunan hasil. Kesan ini boleh diperhatikan dalam output print_r, di mana kedua-dua indeks (0, 1, 2, dsb.) dan kunci sepadannya (id, jabatan_id, nama, dsb.) muncul.
Untuk menyelesaikan isu ini, anda boleh menentukan jenis indeks yang anda inginkan dalam panggilan fungsi mysql_fetch_array. Dengan menghantar MYSQL_NUM sebagai parameter kedua, anda boleh mendapatkan tatasusunan dengan hanya kekunci angka. Sebagai alternatif, MYSQL_ASSOC akan mengembalikan tatasusunan dengan hanya kekunci bersekutu.
<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>
Anda juga boleh menggunakan fungsi mysql_fetch_row dan mysql_fetch_assoc, yang secara khusus mengembalikan tatasusunan angka atau bersekutu, masing-masing:
// Get numeric keys only
$query_result_array = mysql_fetch_row($query_result);
// Get associative keys only
$query_result_array = mysql_fetch_assoc($query_result);
Atas ialah kandungan terperinci Mengapa gelung foreach saya memaparkan data berganda apabila menggunakan `mysql_fetch_array`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!