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
Freigeben: 2024-12-13 11:52:10
Original
830 Leute haben es durchsucht

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"];
Nach dem Login kopieren

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

$allowed = ["foo", "bar"];
Nach dem Login kopieren

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];
Nach dem Login kopieren

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)));
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage