Heim >Backend-Entwicklung >PHP-Tutorial >Wie filtere ich ein assoziatives Array basierend auf Schlüsseln, die in einem indizierten Array gefunden werden?
Assoziative Array-Schlüssel anhand indizierter Array-Werte prüfen
Das Filtern eines assoziativen Arrays durch Vergleich seiner Schlüssel mit Werten aus einem indizierten Array kann eine Herausforderung sein , da die Callback-Funktion in array_filter() nur Zugriff auf Werte bietet. Es gibt jedoch eine Lösung mit einer Kombination aus array_intersect_key und array_flip.
Stellen Sie sich das folgende Szenario vor:
$my_array = ["foo" => 1, "hello" => "world"]; $allowed = ["foo", "bar"];
Unser Ziel ist es, alle Schlüssel in $my_array auszuschließen, die nicht in $allowed gefunden werden , was zur gewünschten Ausgabe führt:
$my_array = ["foo" => 1];
Lösung mit array_intersect_key und array_flip:
$filtered_array = array_intersect_key($my_array, array_flip($allowed));
Ausgabe:
var_dump($filtered_array); array(1) { ["foo"]=> int(1) }
Das obige ist der detaillierte Inhalt vonWie filtere ich ein assoziatives Array basierend auf Schlüsseln, die in einem indizierten Array gefunden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!