Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Schlüssel beim Filtern eines Arrays in PHP beibehalten?

Wie kann ich Schlüssel beim Filtern eines Arrays in PHP beibehalten?

Mary-Kate Olsen
Freigeben: 2024-12-17 07:54:25
Original
742 Leute haben es durchsucht

How Can I Preserve Keys When Filtering an Array in PHP?

Beibehalten von Schlüsseln bei der Array-Filterung mit array_intersect_key und array_flip

In PHP kann die Funktion array_filter() verwendet werden, um Elemente aus einem Array zu entfernen basierend auf einer benutzerdefinierten Rückruffunktion. Der Rückruf empfängt jedoch nur die Werte des Arrays, nicht die Schlüssel.

Stellen Sie sich das Szenario vor, in dem Sie ein assoziatives Array ($my_array) und eine Liste zulässiger Schlüssel in einem indizierten Array ($allowed) haben. Das Ziel besteht darin, $my_array zu filtern und alle Schlüssel zu entfernen, die nicht in $allowed vorhanden sind.

Der effektivste Ansatz besteht darin, die Funktionen array_intersect_key und array_flip zu nutzen. Die Funktion array_intersect_key filtert die Schlüssel-Wert-Paare eines Arrays basierend auf den Schlüsseln, die in einem anderen Array vorhanden sind. Die Funktion array_flip dreht die Schlüssel und Werte eines Arrays um und erstellt so effektiv eine Zuordnung zwischen Werten und Schlüsseln.

Durch die Kombination dieser Funktionen können Sie die gewünschte Filterung erreichen:

$filtered_array = array_intersect_key($my_array, array_flip($allowed));
Nach dem Login kopieren

Dieser Code erstellt ein neues Array ($filtered_array), das nur die Schlüssel-Wert-Paare von $my_array enthält, wobei die Schlüssel in $allowed vorhanden sind. Das Ergebnis ist identisch mit der gewünschten Ausgabe:

array(
  ["foo"] => 1
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Schlüssel beim Filtern eines Arrays in PHP beibehalten?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage