Tobias Költzsch: PHP: Multiarray richtig zuordnen

Hallo,

ich habe ein Problem Mehrdimensionale Array richtig zu zu ordnen.

$termin[] = array('Datum' => 20121208, 
                  'Ort'   => "Wangen", 
                  'Band'  => "cOoL RoCk oPaS");
 
$termin[] = array('Datum' => 20120311, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "Die Hosenbodenband");
 
$termin[] = array('Datum' => 20120628, 
                  'Ort'   => "Tübingen", 
                  'Band'  => "flying socks");
 
$termin[] = array('Datum' => 20120628, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "flying socks");

In dieser Form werden die Arrays in der ersten Dimension einfach durchgezählt $termin[0] usw.. Ich muss wenn ich einen Wert suche also immer mit array_search arbeiten. Da ich weiß welchen Wert ich suche würde ich gerne das Array statt $termin[0] mit $termin[31.01] direkt ansprechen. Nur wie mache ich das in einem Multiarray?

  1. Tach!

    Da ich weiß welchen Wert ich suche würde ich gerne das Array statt $termin[0] mit $termin[31.01] direkt ansprechen. Nur wie mache ich das in einem Multiarray?

    Ein oftmals so genanntes Multiarray ist in PHP auch nur ein ganz normales Array, dessen Werte allerdings weitere Arrays sind. In der Behandlung unterscheidet sich ein solches "Multiarray" nicht von einem Array mit skalaren (einfachen) Werten. Der Rest ist Handbuchwissen. Wenn man den Key nicht vom System vergeben lassen will, dann muss man ihn selbst in die []-Klammern setzen. Die Besonderheit ist, dass man dieses Array dann assoziativ nennt. Es gibt dann auch keine numerischen Schlüssel mehr. Man kann dann zwar über den Schlüssel auf einen Eintrag zugreifen, will man aber auf alle Werte zugreifen, braucht man foreach statt for mit Zählvariable.

    dedlfix.

    1. Hallo,

      Da ich weiß welchen Wert ich suche würde ich gerne das Array statt $termin[0] mit $termin[31.01] direkt ansprechen. Nur wie mache ich das in einem Multiarray?

      Ein oftmals so genanntes Multiarray ist in PHP auch nur ein ganz normales Array, dessen Werte allerdings weitere Arrays sind. In der Behandlung unterscheidet sich ein solches "Multiarray" nicht von einem Array mit skalaren (einfachen) Werten. Der Rest ist Handbuchwissen. Wenn man den Key nicht vom System vergeben lassen will, dann muss man ihn selbst in die []-Klammern setzen.

      ja, aber das Datum (in welcher Repräsentation auch immer) kann Tobias nicht als Key verwenden, weil es nicht unique ist. Schon in seinem kurzen Beispiel hat er zwei Veranstaltungen am gleichen Datum. Damit scheidet diese Methode also für seinen Fall aus. Es sei denn ...
      Es sei denn, er setzt noch eine weitere Stufe dazwischen, so dass er auf die einzelnen Einträge mit $termin[$datum][$n] zugreift, wobei $n eine fortlaufende Numerierung ist und in den meisten Fällen wohl nur $n=0 vorkommt.

      So long,
       Martin