In PHP ist das Verarbeitung und Extrahieren von Array -Daten eine sehr häufige Aufgabe. Array-Manipulationsfunktionen Array_Column und Array_MAP bieten effiziente Möglichkeiten zum Extrahieren und Manipulieren mehrerer Spalten in einem Array, insbesondere im Umgang mit zweidimensionalen Arrays. In diesem Artikel wird vorgestellt, wie diese beiden Funktionen verwendet werden, um mehrere Datenspalten in einem Array effizient zu extrahieren und verwandte Codebeispiele anzuzeigen.
Array_Column ist eine Funktion, mit der Daten aus einer angegebenen Spalte aus einem zweidimensionalen Array extrahiert werden. Es extrahiert den Wert, der dem angegebenen Schlüssel aus jedem Element im Array (normalerweise ein assoziatives Array) entspricht, und gibt ein neues Array zurück.
Grammatik:
array_column(array $array, $column_key, $index_key = null)
$ Array : Das multidimensionale Eingangsarray.
$ column_key : Gibt die zu extrahierende Spalte an.
$ INDEX_KEY : Optionaler Parameter, um einen Schlüsselwert als Index des Neuarrays anzugeben.
Beispiel:
Angenommen, wir haben eine Reihe von Benutzerinformationen. Jeder Benutzer enthält ID , Name und E -Mail .
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// Alle extrahieren "name" Liste
$names = array_column($users, 'name');
print_r($names);
Ausgabe:
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)
Durch Array_Column extrahieren wir die Daten der Namensspalte .
Array_MAP kann verwendet werden, um eine Rückruffunktion auf jedes Element in einem Array anzuwenden, um ein neues Array zu generieren. Wir können diese Funktion verwenden, um Daten aus mehreren Spalten zu extrahieren.
Grammatik:
array_map(callable $callback, array $array)
$ Callback : Eine Rückruffunktion, die jedes Element im Array verarbeitet.
$ Array : Das Eingabearray.
Beispiel:
Angenommen, wir möchten jetzt nicht nur die Spalte des Namens , sondern auch die E -Mail -Spalte extrahieren, wir können dies mit Array_Map in Verbindung mit der Rückruffunktion tun.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// Extrakt "name" Und "email" 两Liste
$namesAndEmails = array_map(function($user) {
return [$user['name'], $user['email']];
}, $users);
print_r($namesAndEmails);
Ausgabe:
Array
(
[0] => Array
(
[0] => Alice
[1] => alice@m66.net
)
[1] => Array
(
[0] => Bob
[1] => bob@m66.net
)
[2] => Array
(
[0] => Charlie
[1] => charlie@m66.net
)
)
In diesem Beispiel wird Array_MAP verwendet, um den Namen und die E-Mail von beiden Feldern aus dem Array jedes Benutzers zu extrahieren, wodurch ein neues zweidimensionales Array generiert wird.
Manchmal möchten wir Daten aus mehreren Spalten extrahieren und diese Daten verarbeiten. Dieses Ziel kann effizient erreicht werden, indem Array_Column und Array_Map kombiniert werden. Zum Beispiel können wir die Namen und E -Mail -Spalten aller Benutzer extrahieren und den Domänennamen m66.net in der E -Mail mit Beispiel.com ersetzen.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];
// verwenden array_map Extrakt name Und email,Und ändern email
$namesAndEmails = array_map(function($user) {
$user['email'] = str_replace('@m66.net', '@example.com', $user['email']);
return [$user['name'], $user['email']];
}, $users);
print_r($namesAndEmails);
Ausgabe:
Array
(
[0] => Array
(
[0] => Alice
[1] => alice@example.com
)
[1] => Array
(
[0] => Bob
[1] => bob@example.com
)
[2] => Array
(
[0] => Charlie
[1] => charlie@example.com
)
)
In diesem Beispiel extrahieren wir nicht nur den Namen und die E -Mail des Benutzers, sondern ändern auch den E -Mail -Domänennamen von m66.net über str_replace auf example.com .
Array_Column ist ein sehr effizientes Werkzeug zum Extrahieren einzelner Spaltendaten aus mehrdimensionalen Arrays und eignet sich für eine einfache Spaltenextraktion.
Array_MAP bietet leistungsstärkere Funktionen, mit denen die komplexe Verarbeitung jedes Elements durchgeführt werden kann, wodurch Daten aus mehreren Spalten extrahiert werden.
Die Verwendung dieser beiden Funktionen kann Multi-Säulen-Daten in mehrdimensionalen Arrays effektiv extrahieren und verarbeiten, die Verwendung verschachtelter Schleifen vermeiden und die Lesbarkeit und Ausführungseffizienz der Code verbessern.
Durch die Verwendung dieser beiden Funktionen können Sie die Komplexität der Array -Datenverarbeitung erheblich vereinfachen und die Ausführungseffizienz des Codes verbessern.
Verwandte Tags:
array_map