in_array und mehrdimensional

jenno

Erfahrenes Mitglied
Hallo ihrs,

ich hab schon gesucht, aber leider noch nichts passendes gefunden.

Ich erstelle ein Array nach dem Muster

PHP:
$arr[0] = array("Bücher", 1);
$arr[1] = array("Elektro", 2);
usw...

Nun kann es jedoch passieren, dass ich irgendwann nochmal den Wert "Bücher" bekomme. Da der aber schon in meinem Array steht, will ich diesen Wert nicht nochmal zufügen.

Es gibt ja die Funktion in_array(), aber wie kann ich diese Funktion in diesem Zusammenhang anwenden, wenn überhaupt? Irgendwie komm ich hier grad nicht weiter. Kann mir irgendjemand helfen?
 
Du kannst parallel zum zweidimensionalen Array ein eindimensionales Array erstellen, welches Du über [phpf]in_array[/phpf] prüfen kannst.
 
Wow, Du bist gut! Danke!
Oft gelingt es mir ja auch schon, von der einen Idee loszulassen, wenns nicht klappt und sich nen neuen Weg auszudenken. Aber eben noch nicht oft genug ;)
 
Ob es für Dich die beste Variante ist, kann ich nicht sagen. Vielleicht brauchst Du auch kein zweidimensionales Array? Denn die Zahl der zweiten Dimension entspricht ja immer genau eins mehr gegenüber dem Index der ersten Dimension.
 
Doch, doch, ich brauche die zweite Dimension. Weil die Zahl entspricht nämlich der Id des anderen Wertes aus der Datenbank. Und das kann sonstwas für eine Zahl sein. Letzten Endes ist der konkrete Einsatz ziemlich kompliziert, so dass ich ein einfaches Beispiel genommen habe. Und Deine Lösung hilft mir weiter, ist schon im Einsatz und funktioniert bestens!

:)
 
dreh das Array doch um.
Wenn du garantieren kannst, das die ID auch unique ist, sollte sie ja sein,.
nimm diese als schlüssel und den Wert als Wert.

Somit kannst du auf die IDs im Array mit key_exists (oder so ähnlich) und den Inhalt mit in_array abfragen.

PHP:
$arr = array();
$arr[0] = array("Bücher", 1); 
$arr[1] = array("Elektro", 2); 
usw...

//Wird jetzt zu
$arr = array()
$arr[1] = "Bücher";
$arr[2] = "Elektro";
usw.
 
Zurück