In der PHP -Entwicklung sind Array -Operationen eine der häufigsten Aufgaben. Insbesondere beim Extrahieren von Daten aus einem bestimmten Feld aus einem Array können wir auf eine Reihe verschiedener Implementierungen stoßen. In diesem Artikel werden mehrere häufig verwendete Methoden zum Extrahieren von Array -Feldern vorgestellt und Vergleich und Analyse durchgeführt, um Entwicklern zu helfen, die beste Lösung basierend auf bestimmten Szenarien auszuwählen.
Array_Column () ist eine sehr bequeme Funktion in PHP zum Extrahieren bestimmter Spalten (Felder) aus mehrdimensionalen Arrays.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_column($array, 'name');
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Anwendbares Szenario : Wenn ein Array ein assoziatives Array ist und Sie nur eines der Felder extrahieren müssen, ist Array_Column () eine sehr prägnante und effiziente Methode.
Einschränkung : Diese Funktion gilt nur für zweidimensionale Arrays oder Arrays mit höheren Abmessungen.
array_map () kann eine Rückruffunktion auf jedes Element in einem Array anwenden, damit wir den Wert des angegebenen Feldes im Array extrahieren können.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_map(function ($item) {
return $item['name'];
}, $array);
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Anwendbare Szenarien : Array_Map () bietet mehr Flexibilität, wenn Sie komplexere Vorgänge für Array -Elemente ausführen müssen oder nicht nur Felder extrahieren.
Einschränkung : Wenn ein Array groß ist, kann es etwas weniger effizient sein als Array_Column () .
Verwenden Sie direkt, um das Array durch das Array zu schleifen und den Wert des angegebenen Feldes manuell zu extrahieren. Diese Methode ist flexibler, das Codevolumen ist jedoch relativ groß.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
foreach ($array as $item) {
$names[] = $item['name'];
}
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Anwendbare Szenarien : Verwenden Sie für die Bereitstellung maximaler Flexibilität, wenn Sie eine komplexere Verarbeitung durchführen müssen, oder zusätzliche Vorgänge auf extrahierten Feldern ausführen möchten.
Einschränkungen : Dieser Ansatz kann im Vergleich zu Array_Column () oder array_map () zusätzliches Codevolumen hinzufügen.
Array_walk () ist eine weitere Funktion, die üblicherweise zum Durchlaufen von Arrays verwendet wird, mit der Sie jedes Element eines Arrays verarbeiten und ändern können. Wir können es auch verwenden, um die angegebenen Felder zu extrahieren.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
array_walk($array, function ($item) use (&$names) {
$names[] = $item['name'];
});
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Anwendbares Szenario : Wenn Sie den Inhalt des ursprünglichen Arrays ändern möchten, ist Array_walk () eine gute Wahl. Wenn Sie jedoch nur Felder extrahieren, ist Array_Column () prägnanter und effizienter.
Einschränkung : Es ist nicht so intuitiv wie Array_Column () , wenn es verwendet wird, insbesondere in Szenarien, in denen nur Felder extrahiert werden müssen.
Verfahren | Einfachheit | Flexibilität | Leistung | Anwendbare Szenarien |
---|---|---|---|---|
Array_Column () | hoch | Niedrig | schnell | Extrahieren einfache Felder, geeignet für die Säulenextraktion von zweidimensionalen Arrays oder mehrdimensionalen Arrays |
array_map () | Mitte | hoch | Medium | Wenn komplexe Verarbeitung oder Mehrfeldoperationen erforderlich sind |
nach | Niedrig | hoch | Medium | Wenn eine komplexe Verarbeitung abgeschlossen ist, müssen Sie jedes Element manuell bedienen. |
Array_walk () | Niedrig | hoch | Medium | Wenn Sie den Inhalt des Arrays ändern oder mehr Kontrolle benötigen |
Optimale Leistung : Wenn Sie einfach ein bestimmtes Feld extrahieren, ist Array_Column () die beste Wahl, da es einfach, direkt und effizient ist.
Am flexibelsten : Wenn die Anforderungen komplex werden, bietet Array_Map () oder foreach einen größeren Betriebsraum, und Rückruffunktionen können gemäß den Anforderungen angepasst werden.
Bei der Änderung des ursprünglichen Array : array_walk () eignet sich zum Ändern von Array -Elementen. Wenn es jedoch nur Felder extrahiert, ist dies nicht die beste Wahl.
Es gibt viele Möglichkeiten, Array -Felder in PHP zu extrahieren, und jede Methode hat ihre anwendbaren Szenarien. In der tatsächlichen Entwicklung können Sie die Lesbarkeit und Effizienz Ihres Codes verbessern. Durch den Vergleich dieses Artikels glaube ich, dass Sie die beste Extraktionsmethode entsprechend Ihren tatsächlichen Bedürfnissen auswählen können.