Zurück zur Übersicht

PHP: Array nach Keys eines anderen Arrays filtern

#Tutorials#PHP

Hat man ein Array, dass beispielsweise für eine Tabellenartige Ansicht genutzt wird und stellt einen Filter ein, dass nicht mehr alle Spalten gezeigt werden sollen, so hat man meistens folgende Konstellation:

  1. Array mit allen Spalten
  2. Array mit Keys der anzuzeigenden Spalten

Um das Ganze nun zu filtern benötigt man array_flip und array_intersect_key.

Das funktioniert dann so. Unser Filter-Array wird mit array_flip so gedreht, dass die Keys auch wirklich die Keys im Array werden. Mit der Funktion array_intersect_key wird dann die Schnittmenge aus beiden Arrays zurückgegegeben und es bleiben nur die Spalten übrig, die im Key-Array vorhanden waren.

Hier ein Beispiel:

$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontShowMe'] = 'Diese Spalte soll nicht gezeigt werden';

// Array mit Spalten, die gezeigt werden sollen
$filterKeys = array('name', 'dob', 'address');

$customerFiltered = array_intersect_key($customer, array_flip($filterKeys));

Das erzeugt dann folgende Ausgabe für $customerFiltered

Array (
  [address] => 123 fake st
  [name] => Tim
  [dob] => 12/08/1986

)

Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.