Doppelte Ergebnisse im Array (mysql_fetch_array)
Der angegebene Code stößt auf ein Problem, bei dem die foreach-Schleife aufgrund der Funktionsweise von mysql_fetch_array doppelte Daten anzeigt . Standardmäßig weist es jedem Element im Ergebnisarray sowohl numerische als auch assoziative Indizes zu. Dieser Effekt kann in der print_r-Ausgabe beobachtet werden, wo sowohl Indizes (0, 1, 2 usw.) als auch ihre entsprechenden Schlüssel (ID, Abteilungs-ID, Name usw.) erscheinen.
Um dieses Problem zu beheben, Sie können den gewünschten Indextyp im Funktionsaufruf mysql_fetch_array angeben. Durch die Übergabe von MYSQL_NUM als zweiten Parameter können Sie ein Array nur mit numerischen Tasten abrufen. Alternativ gibt MYSQL_ASSOC ein Array nur mit assoziativen Schlüsseln zurück.
<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>
Sie können auch die Funktionen mysql_fetch_row und mysql_fetch_assoc verwenden, die speziell numerische bzw. assoziative Arrays zurückgeben:
<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>
Durch die Nutzung dieser Optionen können Sie doppelte Daten in Ihrer foreach-Schleife vermeiden und sicherstellen, dass das resultierende Array die benötigten Indizes und Werte enthält.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine foreach-Schleife doppelte Daten an, wenn ich „mysql_fetch_array' verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!