Aktueller Standort: Startseite> Neueste Artikel> Verwenden

Verwenden

M66 2025-05-18

In PHP müssen wir bei Verwendung der MySQLI -Erweiterung für Datenbankvorgänge die Abfrageergebnisse häufig weiter verarbeiten. Das Objekt von MySQLI_Result wird alle aus der Abfrage in der Datenbank zurückgegebenen Daten gespeichert. Normalerweise müssen wir jede Datenreihe durchführen, um bestimmte Operationen auszuführen. Ein häufiger Weg ist durch Schleifen, aber wenn wir eine prägnantere Art und Weise verwenden möchten, können wir jede Datenreihe mit Hilfe der integrierten Funktion von PHP () bearbeiten.

1. Einführung in die Funktion array_map ()

Array_map () ist eine Funktion höherer Ordnung, mit der Sie eine Rückruffunktion auf jedes Element im Array anwenden können und ein neues Array zurückgeben. Einfach ausgedrückt, verändert es jedes Element im Array durch eine Rückruffunktion.

Die grundlegende Syntax ist wie folgt:

 array_map(callable $callback, array $array, array ...$arrays): array
  • Rückruf ist die Rückruffunktion, die wir bewerben möchten.

  • Array ist das Array, das wir verarbeiten wollen.

  • Mehrere Arrays können als Parameter akzeptiert werden, aber im Allgemeinen übergeben wir nur in einem Array.

2. Verwenden Sie array_map () , um MySQLi_Result -Ergebnisse zu verarbeiten

Bei der Verarbeitung von MySQLi_Result müssen wir es zuerst in ein Array umwandeln. Es kann über die Funktion mySQLI_Fetch_all () implementiert werden, die die Abfrageergebnisse in ein zweidimensionales Array umwandelt. Dann können wir Array_map () verwenden, um jede Zeile zu verarbeiten.

Beispielcode:

 <?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("localhost", "root", "password", "database_name");

// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

// Eine Frage ausführen
$result = $mysqli->query("SELECT * FROM users");

// Konvertieren Sie Abfrageergebnisse in ein zweidimensionales Array
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

// Definieren Sie eine Rückruffunktion,Wird verwendet, um jede Datenzeile zu verarbeiten
function processRow($row) {
    // Zum Beispiel,Ändern Sie die Daten jeder Zeile(Hier ist nur ein Beispiel)
    $row['email'] = str_replace('@old-domain.com', '@m66.net', $row['email']);
    return $row;
}

// verwenden array_map Stapelverarbeitung jeder Reihe
$processedData = array_map('processRow', $data);

// Ausgabedaten ausgeben
print_r($processedData);

// Schließen Sie die Datenbankverbindung
$mysqli->close();
?>

Code Beschreibung:

  1. Verbindung mit der Datenbank : Erstens stellen wir eine Datenbankverbindung über New MySQLI () her.

  2. Abfrage ausführen : Verwenden Sie MySQLi-> query (), um die Anweisung für Abfragen auszuführen und MySQLi_Result aus der Datenbank zu erhalten.

  3. Konvertieren Sie Abfrageergebnisse in Array : Verwenden Sie MySQLI_Fetch_all (), um die Abfrageergebnisse in ein assoziatives Array ( mySQLi_Assoc ) umzuwandeln.

  4. Definieren Sie die Rückruffunktion : processrow () ist eine benutzerdefinierte Rückruffunktion, in der wir die Daten jeder Zeile ändern. Zum Beispiel ersetzen wir hier den Domänennamen in der E-Mail von old-domain.com bis m66.net über str_replace () .

  5. Batch -Verarbeitung : Batch -Verarbeitung jeder Datenreihe über die Funktion array_map () und übergeben Sie sie in den Callback -Funktionsprozessrow , um jede Zeile zu verarbeiten.

  6. Ausgabeverarbeitete Daten : Schließlich drucken wir die verarbeiteten Daten aus.

3.. Warum Array_map () wählen?

Im Vergleich zur Verwendung von Foreach -Loops zur Verarbeitung von Datenzeile nach Zeile verfügt Array_map () über eine sauberere Syntax, wodurch der Code kompakter und löser wird. Insbesondere beim Umgang mit komplexeren Vorgängen kann die Verwendung von Array_Map () den Code mehr funktionaler Programmierstil aussehen lassen.

4.. Dinge zu beachten

  • Array_map () gibt ein neues Array zurück und ändert das ursprüngliche Array nicht. Wenn Sie also die Originaldaten aufbewahren müssen, können Sie den Rückgabewert in einer anderen Variablen speichern.

  • mysqli_fetch_all () gibt ein zweidimensionales Array zurück, sodass wir es direkt in array_map () verarbeiten können. Wenn Sie nur eine einzelne Spalte verarbeiten müssen, können Sie andere Funktionen wie Array_Column () verwenden, um die Spalte zuerst zu extrahieren und dann zu verarbeiten.

5. Zusammenfassung

Durch die Verwendung der Funktion array_map () können wir jede Zeile in das Ergebnis von MySQLI_Result -Abfrage konzipiert und effizient bearbeiten. Es ist einfacher als herkömmliche für Schleifen und kann die Absicht der Datenverarbeitung deutlich ausdrücken. Ich hoffe, diese Methode kann Ihnen helfen, die Daten in Datenbankabfrageergebnissen besser zu verarbeiten.