In PHP sind array_map () und array_diff () zwei häufig verwendete Array -Betriebsfunktionen. Array_map () wird verwendet, um eine Rückruffunktion auf jedes Element in einem Array anzuwenden, während array_diff () verwendet wird, um die Differenz zwischen zwei Arrays zu berechnen. Durch die Kombination dieser beiden Funktionen können wir leistungsstarke Datenkonvertierung und Array -Vergleichsfunktionen implementieren.
Die Funktion array_map () übernimmt eine Rückruffunktion und eine oder mehrere Arrays als Parameter und gibt ein neues Array zurück, bei dem jedes Element das Ergebnis der Rückruffunktion ist, die auf die entsprechenden Array -Elemente gilt.
Grammatik:
array_map(callable $callback, array $array1, array $array2, ...);
Die Funktion array_diff () wird verwendet, um Elemente von zwei oder mehr Arrays zu vergleichen und Elemente zurückzugeben, die im ersten Array vorhanden sind, nicht in anderen Arrays.
Grammatik:
array_diff(array $array1, array $array2, ...);
Angenommen, wir haben zwei Arrays: Eines ist ein Array mit personenbezogenen Nutzerinformationen, und das andere ist ein Array von Benutzerdatensätzen, die aus der Datenbank erhalten wurden. Wir können Array_Diff () verwenden, um herauszufinden, welche Benutzerinformationen in der Datenbank nicht vorhanden sind, und dann mit Array_map () diese Informationen konvertieren oder formatieren.
Das Folgende ist ein Beispiel, das zeigt, wie diese beiden Funktionen verwendet werden, um Datenkonvertierung und Array -Vergleich durchzuführen.
<?php
// Simuliertes Benutzerinformationsarray
$users = [
['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@example.com'],
['id' => 2, 'name' => 'Li Si', 'email' => 'lisi@example.com'],
['id' => 3, 'name' => 'Wang Wu', 'email' => 'wangwu@example.com']
];
// Simuliertes Datenbank -Datensatz -Array(Angenommen, es gibt nur die ersten beiden Datensätze in der Datenbank)
$dbUsers = [
['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@m66.net'],
['id' => 2, 'name' => 'Li Si', 'email' => 'lisi@m66.net']
];
// Holen Sie sich Benutzer, die nicht im Datenbankdatensatz sind
$usersToAdd = array_diff(
array_map(function($user) { return $user['email']; }, $users),
array_map(function($user) { return $user['email']; }, $dbUsers)
);
// Ausgabe des zu hinzugefügten Benutzer
echo "Benutzer, die hinzugefügt werden müssen:\n";
foreach ($usersToAdd as $userEmail) {
echo $userEmail . "\n";
}
?>
Datenvorbereitung: Wir haben zwei Arrays $ Users und $ DBUSERS , bei denen $ Users die Benutzerdaten sind, die verarbeitet werden, und $ dbusers ist der Benutzerdatensatz, der bereits in der Datenbank vorliegt.
Array -Vergleich: Verwenden Sie Array_Map () , um das E -Mail -Feld jedes Elements in den beiden Arrays zu extrahieren und dann die E -Mail -Adresse in $benutzern zu ermitteln und in $ DBUSers nicht vorhanden zu sein.
Ausgabeergebnis: Verwenden Sie die Schleife , um die Benutzer -E -Mail -Adresse auszugeben, die Sie hinzufügen müssen.
Durch Kombination von Array_Map () und Array_Diff () können wir sehr leistungsstarke Datenkonvertierung und Array -Vergleichsfunktionen implementieren. Dieser Ansatz kann uns helfen, die Unterschiede zwischen Arrays schnell herauszufinden und die Ergebnisse zu konvertieren oder sie weiter zu verarbeiten. In der tatsächlichen Entwicklung können solche Techniken uns helfen, Daten effizient zu verarbeiten und zu reinigen.
Verwandte Tags:
array_map