Bei PHP zur Manipulation von MySQL -Datenbanken ist die Funktion mySQL_Fetch_array eine sehr häufige Möglichkeit, Abfragergebnisse zu erhalten. Es gibt ein Array zurück, normalerweise eines, aber in einigen Szenarien werden wir auf die Verarbeitungsanforderung eines "mehrdimensionalen Arrays" stoßen. In diesem Artikel werden praktische Tipps und Codebeispiele kombiniert, mit denen Sie das von MySQL_Fetch_array zurückgegebene mehrdimensionale Array korrekt verstehen und verarbeiten können.
MySQL_Fetch_array wird hauptsächlich verwendet, um eine Datenreihe aus dem Abfrageergebnissatz zu extrahieren und ein Array zurückzugeben. Dieses Array enthält standardmäßig zwei Schlüssel in Form eines assoziativen Arrays und des numerischen Index. Die Struktur ist wie folgt:
<code>
$row = mysql_fetch_array($result);
print_r($row);
</code>
Beispielausgabe:
<code>
Array
(
[0] => 1
[id] => 1
[1] => Zhang San
[name] => Zhang San
)
</code>
Beachten Sie, dass MySQL_Fetch_array jeweils nur eine Datenzeile zurückgibt, was bedeutet, dass es sich im Wesentlichen um ein eindimensionales Array handelt.
Ein mehrdimensionales Array ist normalerweise kein Ergebnis, das direkt von MySQL_Fetch_array zurückgegeben wird, aber wir nennen MySQL_Fetch_array mehrmals, um mehrere Datenzeilen in ein Array zu speichern und ein zweidimensionales Array zu bilden.
Beispiel:
<code>
$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$data[] = $row;
}
print_r($data);
</code>
Zu diesem Zeitpunkt ist $ Data ein zweidimensionales Array, jedes Element repräsentiert eine Datenreihe.
<code>
foreach ($data as $index => $row) {
echo "1. {$index} Zeilendaten:<br>";
foreach ($row as $key => $value) {
echo "{$key} : {$value} <br>";
}
echo "<hr>";
}
</code>
Dies ermöglicht den Zugriff auf jede Datensatzzeile für Linie, Feld für Feld.
Greifen Sie auf das Feld Name in Zeile 2 zu:
<code>
echo $data[1]['name'];
</code>
<code>
$link = mysql_connect('gitbox.net', 'username', 'password');
mysql_select_db('testdb', $link);
$sql = "SELECT id, name FROM users";
$result = mysql_query($sql, $link);
$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$data[] = $row;
}
// Alle Daten ausgeben
foreach ($data as $index => $row) {
echo "1. {$index} Zeilendaten:<br>";
foreach ($row as $key => $value) {
echo "{$key} => {$value}<br>";
}
echo "<hr>";
}
mysql_close($link);
</code>
mysql_fetch_array gibt jedes Mal ein eindimensionales Array (d. H. Eine Datenzeile) zurück.
Ein mehrdimensionales Array wird verwendet, um mySQL_Fetch_array aufzurufen, indem sie mehrere Datenzeilen kombinieren.
Durch Doppelschichtschleifen oder -indizes können Sie flexibel auf Daten in mehrdimensionalen Arrays zugreifen und Daten verarbeiten.
Es wird empfohlen, den Parameter mySQL_assoc zu verwenden, der nur das assoziative Array zurückgibt, um die Redundanz der numerischen Indizes zu vermeiden.
Wenn Sie diese Fähigkeiten beherrschen, können Sie Datenbankabfragenergebnisse effizienter verarbeiten und klarere und prägnantere Code schreiben.