Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie "variabel" auf Array-Elemente zugreifen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie "variabel" auf Array-Elemente zugreifen?

    Ein (assoziatives), mehrdimensionales Array hat z.B. das Element

    $arr['autos']['dt']['DB']['date'] = "12.12.1977";

    Nun möchte ich, dass Teile der Indices, die in einer Variablen stehen, für den Zugriff auf das Array nutzen.

    Im Beispiel von oben stehe also z.B.

    $x = "['dt']['DB']";


    Ich würde nun gerne einen Zugriff auf das Array ähnlich folgendem - nicht funktionierenden - code machen:

    $var = $arr['autos']$$x['date'];

    worin dann statt $$x eben dessen Inhalt stehen soll und effektiv dann das ganz oben gezeigte "12.12.1977" bringen.

    Ein Zusammenbauen des ganzen Arrays in einer Variable und dann $$var funktioniert leider auch nicht ...

    Im Moment packe ich die ganze Sache in einen String und führe ihn mit eval() aus. Das muss doch auch anders gehen?

    Danke!
    jwka

  • #2
    Warum nicht:

    PHP-Code:
    $x = 'dt';
    $y = 'DB';

    $var = $arr['autos'][$x][$y]['date']; 
    ? Alles andere wird nicht funktionieren.

    Kommentar


    • #3
      Nein sowas gibts nicht. Irgendwie kommt mir das auch sehr komisch vor, wieso hast du so variable Arrays das du nichtmal die Dimensionen vom Array kennst? Ich denke mir die Arrays könnte man wesentlich schlauer arrangieren um nicht auf solche eval() Hacks zurückgreifen zu müssen.

      Kommentar


      • #4
        @jabubo: Diese Variante kenne ich und setze sie auch (an anderer Stelle) ein. In diesem Falle habe ich halt die Index-Werte in form eines (einzelnen) String vorliegen.

        Im Prinzip suche ich nach sowas wie "eval_part", das an einer beliebigen Stelle des Code einen Text als Code-Bestandteil interpretiert.

        Gibts wohl nicht ...

        @Florian:
        Mag sein, aber das würde bedeuten, dass wir zwei uns vor den ganzen Code setzen und die Arrays neu strukturieren ... wird wohl so nicht gehen.

        Danke für die Hinweise!
        jwka

        Kommentar


        • #5
          Ein eval_part gibt es nicht.

          Was man aus deiner Struktur soweit ein wenig ablesen kann:
          Du scheinst eine Struktur zu haben, die gut in Objekte passen würde. Daher würde ich dir Empfehlen, die Daten an ein Objekt zu übergeben und mit entsprechenden Funktionen auf die gewünschten Elemente zugreifen.

          So eine Analyse über ein Forum mag nicht so einfach sein, aber hilfreich kann es trotz allem werden. Es genügt ja, die wesentlichen Dinge zu erwähnen.

          Kommentar


          • #6
            Objekte, ja. Steht bei mir auf der Liste ganz oben, weil ich eh den Vedacht habe, dass ich stark Objektorientiert denke, auch, wenn ich meine Arrays so ansehe, ich kapsle viel.

            Leider hatte ich noch keine Zeit mich ins Thema Objekte in PHP einzulesen. Wird aber noch kommen.

            Danke & Ciao
            jwka

            Kommentar


            • #7
              Hmm, ja, Internet 2010. Die Erläuterung eines Problems scheint da schon zu viel Arbeit zu sein. Immer wieder erstaunlich, dass in diesem Forum überhaupt noch geantwortet werden kann.

              Kommentar

              Lädt...
              X