In PHP sind Array_combine und Array_filter zwei sehr praktische Funktionen, die uns helfen können, komplexe Aufgaben bei der Verarbeitung von Arrays zu erledigen. Heute werden wir untersuchen, wie diese beiden Funktionen zusammen verwendet werden, um den Betrieb der Filterung gemäß den Bedingungen zu erreichen und dann Arrays zu verschmelzen.
Die Funktion array_combine wird verwendet, um zwei Arrays in ein assoziatives Array zu kombinieren. Sein erster Parameter ist der Schlüsselname des Arrays, und der zweite Parameter ist der Wert des Arrays. Es ist erforderlich, dass die Längen der beiden Arrays gleich sein müssen, ansonsten werden false zurückgegeben.
$keys = ['a', 'b', 'c'];
$values = [1, 2, 3];
$combined = array_combine($keys, $values);
print_r($combined);
Ausgabe:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
Die Funktion array_filter wird verwendet, um Elemente in einem Array zu filtern und zu bestimmen, welche Elemente aufbewahrt werden und welche Elemente basierend auf der angegebenen Rückruffunktion Return true oder False entfernt werden. Wenn keine Rückruffunktion übergeben wird, löscht es das Element mit einem Wert von FALSE .
$array = [1, 2, 3, 4, 5];
$filtered = array_filter($array, function($value) {
return $value > 2;
});
print_r($filtered);
Ausgabe:
Array
(
[2] => 3
[3] => 4
[4] => 5
)
Im obigen Beispiel filtert Array_filter Elemente, die über 2 über die Rückruffunktion größer als 2 sind.
Jetzt können wir Array_combine und Array_filter kombinieren, zuerst Elemente herausfiltern, die die Kriterien nicht erfüllen, und sie dann in ein assoziatives Array über Array_combine zusammenführen.
Angenommen, wir haben eine Reihe von Schlüsselnamen und eine Reihe von Werten. Wir möchten einige Elemente in der Reihe von Werten basierend auf bestimmten Bedingungen herausfiltern und dann die gefilterten Schlüsselwertepaare in ein neues Array zusammenführen.
$keys = ['a', 'b', 'c', 'd'];
$values = [10, 20, 5, 15];
// Erster Filter des Wertes ist geringer als 10 Elemente
$filtered_values = array_filter($values, function($value) {
return $value >= 10;
});
// Kombinieren Sie den gefilterten Wert mit der Schlüsselnamennummer
$combined = array_combine($keys, $filtered_values);
print_r($combined);
Ausgabe:
Array
(
[a] => 10
[b] => 20
[d] => 15
)
Wir verwenden Array_filter , um Elemente mit Werten von weniger als 10 herauszufiltern.
Verwenden Sie dann Array_combine , um das Schlüsselname -Array $ -Keys und das gefilterte Value -Array $ filtered_values in ein neues assoziatives Array zu verschmelzen.
Die beiden Arrays von Array_Combine müssen die gleiche Länge haben, ansonsten wird Falsch zurückgegeben. Daher müssen wir in praktischen Anwendungen sicherstellen, dass das filtrierte Wert -Array und das Schlüsselname -Array derselben Länge sind.
Bei Verwendung von Array_filter behält es die Schlüssel im Originalarray bei, sodass Sie möglicherweise Probleme mit dem Aufrufen von Array_combine haben. Wenn wir die Bestellung konsistent halten müssen, können wir Array_values verwenden, um die Schlüssel des Arrays zurückzusetzen:
$filtered_values = array_values($filtered_values);
Dies stellt sicher, dass die Schlüssel des Arrays bei 0 beginnen und dass die Länge übereinstimmt.
Durch die Kombination von Array_combine und Array_filter können wir die Funktion der Filterung gemäß den Bedingungen flexibel implementieren und dann Arrays zusammenführen. Diese Methode kann uns dabei helfen, bei der Verarbeitung von Daten effiziente Filter- und Zusammenführungsvorgänge durchzuführen und ist besonders für Szenarien geeignet, in denen Datenstrukturen gemäß den dynamischen Bedingungen angepasst werden müssen.
Ich hoffe, dass Sie durch dieses Tutorial die Verwendung dieser beiden Funktionen besser verstehen und flexibel auf tatsächliche Projekte angewendet werden können.
Verwandte Tags:
array_filter