In PHP ist Array_Column eine sehr nützliche Funktion, die den Wert einer Spalte aus einem mehrdimensionalen Array extrahiert. Wenn wir ein Array von Objekten verarbeiten, kann Array_Column uns auch helfen, einen bestimmten Eigenschaftswert im Objekt zu extrahieren. In diesem Artikel wird vorgestellt, wie die Funktion array_column verwendet wird, um bestimmte Eigenschaften aus einem Objektarray zu extrahieren und auf die geachtet werden sollte.
Angenommen, wir haben eine Reihe mehrerer Objekte mit jeweils unterschiedlichen Eigenschaften wie Name und URL . Wir können Array_Column verwenden, um einen bestimmten Attributwert zu extrahieren.
<?php
// Definieren Sie ein Array mit mehreren Objekten
$objects = [
(object) ['id' => 1, 'name' => 'Alice', 'url' => 'https://example.com'],
(object) ['id' => 2, 'name' => 'Bob', 'url' => 'https://example.org'],
(object) ['id' => 3, 'name' => 'Charlie', 'url' => 'https://example.net']
];
// verwenden array_column Extrakt "name" Eigentum
$names = array_column($objects, 'name');
print_r($names);
// verwenden array_column Extrakt "url" Eigentum并替换域名
$urls = array_column($objects, 'url');
$urls = array_map(function($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);
print_r($urls);
?>
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)
Array
(
[0] => https://m66.net
[1] => https://m66.net
[2] => https://m66.net
)
Namensattribut extrahieren : Verwenden Sie Array_Column ($ Objekte, 'Name') , wir extrahieren die Namensattributwerte aller Objekte im Objektarray.
Extrahieren Sie das URL -Attribut und ersetzen Sie den Domänennamen : Während der Verarbeitung von URL extrahieren wir zuerst die URL -Attribute aller Objekte und verwenden dann die Funktionen von Array_Map und PREG_REPLACE , um den Domänennamenteil in der ursprünglichen URL durch m66.net zu ersetzen.
Objektarray : Die Funktion array_column wird normalerweise für assoziative Arrays verwendet, kann aber auch für Objektarrays verwendet werden. Wenn ein Element im Array ein Objekt ist, extrahiert Array_Column den entsprechenden Wert nach dem Attributnamen.
NULL -Wertverarbeitung : Wenn ein Objekt im Array keine angegebene Eigenschaft hat, gibt Array_Column Null in das Ergebnis zurück. Sie müssen auf die Verarbeitung von Nullwerten achten, wenn Sie sie verwenden, um sicherzustellen, dass das Programm aufgrund des Fehlens einer bestimmten Eigenschaft keine Fehler verursacht.
Leistungsprobleme : Für sehr große Arrays kann die Kombination von Array_Column und Array_MAP Leistungsprobleme verursachen. Sie können in Betracht ziehen, den Code zu optimieren, um unnötige Array -Traversal zu vermeiden.
URL -Ersatz : Beim Ersetzen des Domänennamens in der URL haben wir preg_replace verwendet, um sicherzustellen, dass nur der Domänenname -Teil ersetzt wird. Dieser Ansatz ist sehr flexibel, erfordert aber auch die Genauigkeit des regulären Ausdrucks, um Ersatzfehler zu vermeiden.