In PHP sind die Funktionen von Array_Column und Array_filter bei der Verarbeitung von Array-Daten sehr nützliche Tools, insbesondere wenn es erforderlich ist, angegebene Spaltendaten aus einem zweidimensionalen Array zu extrahieren, das bestimmte Kriterien entspricht. In diesem Artikel wird erläutert, wie diese beiden Funktionen verwendet werden, um dies zu erfüllen.
Die Funktion array_column wird verwendet, um den Wert einer Spalte aus einem mehrdimensionalen Array zu extrahieren und ein neues Array zurückzugeben. Die grundlegende Syntax ist wie folgt:
array_column(array $array, $column_key, $index_key = null): array
$ Array : Das multidimensionale Eingangsarray.
$ column_key : Der Schlüsselname der Spalte, die Sie extrahieren möchten.
$ index_key (optional): Wenn dieser Parameter bereitgestellt wird, verwendet das zurückgegebene Array diesen Schlüssel als Schlüssel für das neue Array.
Angenommen, wir haben das folgende zweidimensionale Array:
$data = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Joe', 'age' => 22],
];
Wir können die Spalte der Namen aller Benutzer über die Funktion array_column extrahieren:
$names = array_column($data, 'name');
print_r($names);
Die Ausgabe wird sein:
Array
(
[0] => John
[1] => Jane
[2] => Joe
)
Die Funktion array_filter wird verwendet, um Elemente in einem Array zu filtern und Elemente zurückzugeben, die den Kriterien erfüllen. Die grundlegende Syntax ist wie folgt:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ Array : Das Eingabearray.
$ Rückruf : Rückruffunktion, verwendet, um die Bedingungen eines Arrays zu filtern.
$ modus (optional): Filtermodus, Array_Filter_USE_KEY wird für die Schlüsselfilterung, Array_filter_use_Both -Schlüssel und Wertfilterung, Standardfilterung verwendet.
Angenommen, wir möchten Benutzer älter als 24 Jahre aus dem vorherigen Array herausfiltern, und wir können Array_filter mit einer Rückruffunktion verwenden:
$filteredData = array_filter($data, function($person) {
return $person['age'] > 24;
});
print_r($filteredData);
Die Ausgabe wird sein:
Array
(
[1] => Array
(
[id] => 2
[name] => Jane
[age] => 30
)
[0] => Array
(
[id] => 1
[name] => John
[age] => 25
)
)
Wenn Sie Array_Column und Array_filter kombinieren möchten, um angegebene Spaltendaten zu extrahieren, die bestimmte Bedingungen erfüllen, können Sie zuerst die Funktion array_filter zum Filtern des Array verwenden und dann die Funktion array_column verwenden, um die entsprechenden Spalten zu extrahieren.
Nehmen wir beispielsweise an, wir müssen die Namensspalten aller Benutzer älter als 24 Jahre herausfinden:
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
Die Ausgabe wird sein:
Array
(
[0] => John
[1] => Jane
)
In diesem Beispiel wird angezeigt, wie die Daten, die die Kriterien erfüllen, durch Filtern der Daten ( array_filter ) zuerst und dann die gewünschte Spalte ( Array_Column ) filtern.
Wenn Ihre Datenquelle ein Ergebnis ist, das von einer API oder Website zurückgegeben wird, sind die zurückgegebenen Daten normalerweise ein JSON -Objekt, das mehrere Elemente enthält. Nehmen wir beispielsweise an, wir erhalten Benutzerdaten von https://api.m66.net/users und kümmern uns nur um Benutzernamen, die bestimmte Kriterien erfüllen (z. B. Alter älter als 24). Sie können es so machen:
$url = "https://api.m66.net/users";
$response = file_get_contents($url);
$data = json_decode($response, true);
$filteredNames = array_column(
array_filter($data, function($person) {
return $person['age'] > 24;
}),
'name'
);
print_r($filteredNames);
In diesem Beispiel werden die Benutzerdaten zunächst von m66.net über File_Get_Contents erhalten, dann wird der Array_filter verwendet, um Benutzer älter als 24 Jahre zu filtern, und schließlich wird die Spalte der Namensname über Array_Column extrahiert.
Mit der Kombination von Array_Column- und Array_filter -Funktionen können Sie problemlos bestimmte Spaltendaten extrahieren, die die Kriterien aus komplexen zweidimensionalen Arrays erfüllen. Diese Methode ist sehr nützlich für die Verarbeitungsdaten, die von der API, der Datenbankabfrageergebnisse usw. zurückgegeben wurden, und kann die Komplexität der Datenverarbeitung erheblich vereinfachen.