Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich assoziative Array-Schlüssel basierend auf indizierten Array-Werten in PHP filtern?

Wie kann ich assoziative Array-Schlüssel basierend auf indizierten Array-Werten in PHP filtern?

DDD
DDDOriginal
2024-12-13 11:52:10764Durchsuche

How Can I Filter Associative Array Keys Based on Indexed Array Values in PHP?

Assoziative Array-Schlüssel basierend auf indizierten Array-Werten filtern

Viele Programmierer stehen vor der Herausforderung, Schlüssel aus einem assoziativen Array basierend auf bestimmten Werten selektiv herauszufiltern Werte, die in einem indizierten Array gespeichert sind. In PHP bietet die Rückruffunktion array_filter() nur Zugriff auf Array-Werte und lässt die Schlüsselübereinstimmungsfunktion aus.

Stellen Sie sich das folgende Szenario vor, in dem $my_array Schlüssel-Wert-Paare enthält:

$my_array = ["foo" => 1, "hello" => "world"];

Und $allowed ist ein einfaches indiziertes Array mit zulässigen Schlüsseln:

$allowed = ["foo", "bar"];

Das Ziel besteht darin, $my_array so zu ändern, dass es Enthält nur Schlüssel, die auch in $allowed vorhanden sind. Die gewünschte Ausgabe ist:

$my_array = ["foo" => 1];

Um dies zu erreichen, können wir die Funktionen array_intersect_key() und array_flip() nutzen:

var_dump(array_intersect_key($my_array, array_flip($allowed)));

Erklärung:

  • **array_flip($allowed)**: Kehrt die Schlüssel und Werte von $allowed um und konvertiert in ein assoziatives Array, in dem die ursprünglichen Schlüssel zu Werten werden und umgekehrt. Dadurch können wir Schlüssel von $my_array mit Werten im umgedrehten Array vergleichen.
  • array_intersect_key($my_array, $reversed): Schneidet die Schlüssel von $my_array mit dem umgedrehten $allowed-Array. Dadurch bleiben nur die Schlüssel von $my_array erhalten, die als Werte im umgedrehten Array vorhanden sind, wodurch unerwünschte Schlüssel effektiv herausgefiltert werden.

Durch die Kombination dieser Funktionen können wir Schlüssel basierend auf Werten selektiv aus dem assoziativen Array entfernen im indizierten Array, ohne die Schlüssel manuell zu durchlaufen und zu vergleichen.

Das obige ist der detaillierte Inhalt vonWie kann ich assoziative Array-Schlüssel basierend auf indizierten Array-Werten in PHP filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn