Ankündigung

Einklappen
Keine Ankündigung bisher.

(assoziatives) Array of array => Zugriff auf Werte

Einklappen

Neue Werbung 2019

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

  • (assoziatives) Array of array => Zugriff auf Werte

    Hallo liebe PHPler.

    Ich muß (leider) wieder mal in einem Stück PHP-Modul programmieren. Anscheinend habe ich es dabei mit einem Array of array zu tun. Jetzt möchte ich direkt auf einen Wert zugreifen und nicht über alle Werte iterieren. Äääh...., wie geht denn das?

    Da ich es nicht weiß, habe ich auf die Stelle diesen Code geschrieben:

    PHP-Code:
    <?php foreach ($data['ref'] as $id=>$ref): ?>
    <?php     
    if ($id == "boat"): ?>
    <?php         
    foreach ($ref as $col=>$value): ?>
    <?php             
    if ($col == "image1"): ?>
                           <img src="<?php echo $value?>" width="65" height="40" />
    <?php             endif; ?>
    <?php         
    endforeach; ?>
    <?php    
    endif; ?>
    <?php 
    endforeach; ?>
    Meine "Lösung" iteriert durch das gesamte Array of array. Aufwand n*n statt 1. Das geht natürlich nicht.

    Also konkret: Ich brauch den Wert von
    #PSEUDO-CODE
    $data['ref] -> boat -> image1 bzw.
    $data['ref].boat.image1 bzw.
    $data['ref].getBoat().getImage1()


    Wie ist denn da die Syntax? Kann ich nirgends finden. Oder geht das in PHP nicht?

    Danke!!!

  • #2
    PHP-Code:
    $data['ref']['boat']['image1']; 

    Kommentar


    • #3
      http://www.php.de/php-einsteiger/489...nsammlung.html

      Kommentar


      • #4
        Danke! Habe ich nirgends gefunden. War wohl zu trivial.

        Kommentar


        • #5
          Zitat von JavaEntwickler Beitrag anzeigen
          Da ich es nicht weiß, habe ich auf die Stelle diesen Code geschrieben:

          PHP-Code:
          <?php foreach ($data['ref'] as $id=>$ref): ?>
          <?php     
          if ($id == "boat"): ?>
          <?php         
          foreach ($ref as $col=>$value): ?>
          <?php             
          if ($col == "image1"): ?>
                                 <img src="<?php echo $value?>" width="65" height="40" />
          <?php             endif; ?>
          <?php         
          endforeach; ?>
          <?php    
          endif; ?>
          <?php 
          endforeach; ?>
          Was soll denn das ständige Öffnen und Schließen des PHP-Bereiches am Anfang und Ende (fast) jeder Zeile?

          Das ist extrem hässlicher Stil.

          Kommentar


          • #6
            Finde ich eigentlich nicht, auch wenn es hier zugegebenermaßen extrem aussieht.

            Wobei, einrücken würde ich sie schon, stimmt.

            Es erleichtert in Templates das Einfügen von weiterem HTML-Code (etwa Rahmenelemente) oder das Verschieben von Blöcken, ohne ständig die öffnenden und schließenden PHP-Tags anpassen zu müssen.

            PHP/HTML-Templates bleiben natürlich völlig unformatierbar.

            Kommentar


            • #7
              Den Code-Stil habe ich analog des Codes im Modul übernommen. (Keine Lust, mir hier einen Kopp zu machen.)
              Sorry. Ich bin Java-Entwickler. PHP ist nunmal häßlich, meiner Meinung nach. Bzw. das Mischen zweier Sprachen (HTML und Skripting).

              Frohes Schaffen!

              Kommentar


              • #8
                Zitat von JavaEntwickler Beitrag anzeigen
                Ich bin Java-Entwickler. PHP ist nunmal häßlich, meiner Meinung nach.
                Das ist jetzt so ein bißchen, wie in ein fremdes Haus zu gehen und auf den Tisch zu scheißen....

                Aber egal. Ich glaube im Punkt Häßlichkeit liegen Java und PHP ungefähr gleichauf.....


                Und zu ChrisB's Anmerkung: Ich finde im View/Template sollte man es sogar so machen.

                Kommentar


                • #9
                  Die Syntax zum Arrayzugriff ist bei Java genauso wie bei PHP - eckige Klammern und dazwischen der Index.

                  Einziger Unterschied: In PHP dürfen die Indizes nicht-nummerisch sein (in Java brauchts dafür eine Hashmap o.ä.)

                  Kommentar


                  • #10
                    Zitat von JavaEntwickler Beitrag anzeigen
                    Bzw. das Mischen zweier Sprachen (HTML und Skripting).
                    Naja dann machs doch nicht...man kanns schliesslich fast vollständig vermeiden...

                    Kommentar


                    • #11
                      Zitat von agrajag Beitrag anzeigen
                      Das ist jetzt so ein bißchen, wie in ein fremdes Haus zu gehen und auf den Tisch zu scheißen....

                      Aber egal. Ich glaube im Punkt Häßlichkeit liegen Java und PHP ungefähr gleichauf.....
                      Da war was mit dem Balken im Auge des Anderen. Stand irgendwo in so nem dicken Schinken. Aber ernst: Wenn du im Java-Forum schreibst, das Java genaus so häßlich sei wie PHP, oder von mir aus der letzte Sch..merz. Dann ist das doch für mich absolut okay. Das ist deine Erfahrung und Meinung. Was würde ich mir denn einbilden, deine Erfahrung und deine Meinung in Abrede zu stellen?! Für mich ist eben PHP mit einem Wort am besten beschrieben: gruselig. Für mich... Ich habe also subjektiv, aus meiner Warte formuliert.

                      Zitat von RustyXXL Beitrag anzeigen
                      Naja dann machs doch nicht...man kanns schliesslich fast vollständig vermeiden...
                      Das würde ich auch versuchen, wenn's mein Projekt wäre. Wie auch immer, PHP ist meines Empfindens (Obacht, agrajag. subjektive Formulierung) geschichtlich aus HTML-Skripting entstanden und das scheint man, meiner Meinung nach, seufz, auch nicht oder schlecht vermeiden zu können.

                      Auf alle Fälle noch mal Danke für die schnelle Hilfe und auch den Super-Link von oben!

                      Kommentar


                      • #12
                        Passt schon, ich nehme dir das ja auch nicht übel. "Hässlichkeit" ist natürlich immer was subjektives. Aber wenn jemand sich in einem PHP-Forum "JavaEntwickler" nennt und PHP hässlich nennt kann ich mir einfach einen "Java ist auch unfassbar hässlich"-Kommentar nicht verkneifen

                        Kommentar


                        • #13
                          Naja, ich benutze derzeit smarty in einem aktuellen projekt, da ist die trennung zwischen html und php schon recht deutlich, wenn man dadurch auch oftmals in den templates trotzdem noch logik hat, nur halt dann nicht mehr php sondern die smarty syntax. aber zumindest hat man innerhalb von PhP kein HTML mehr, wenn mans denn möchte. Aber eine gewisse verknüpfung zwischen php und html muss nunmal sein, wenn man das ganze zum schluss denn auch im browser anschauen will.

                          Kommentar

                          Lädt...
                          X