Array Probs beim Auslesen

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

  • Array Probs beim Auslesen

    hallo zusammen,

    versuche mich seit kurzer zeit in php und stehe mal wieder augenscheinlich vor einem problem, welches wahrscheinlich gar kein großes ist

    ich hoffe mir kann jemand auf die sprünge helfen bevor ich noch in den tisch beisse

    zum problem:

    ich habe ein mehrdimensionales array erstellt. soweit so gut, nun wollte ich daten auslesen und anzeigen lassen. das klappt aber leider nur bedingt.
    ich schaffe es nich alle datensätze anzeigen zu lassen oder alle einer unterteilung. z.b. alle der rubrik 1 ich schaffe es zwar das er alle datensätze findet aber ohne inhalt (anzeige: array)
    PHP-Code:
    <?PHP

    // Datenspeicher:

    $data = array ( 'Rubrik' => array ( 'Adr1' => array ( 'Titel' => 'Die erste Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                              
    'Adr2' => array ( 'Titel' => 'Die zweite Adresse',
                                  
    'Str' => 'Musterstr',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                              
    'Adr3' => array ( 'Titel' => 'Die dritte Adresse',
                                  
    'Str' => 'Hansaweg 4a',
                                  
    'Plz' => '44895',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    )
                        ), 
    // End Rubrik 1
                                  
                  
    'Rubrik2' => array ( 'Adr1' => array ( 'Titel' => 'Die 4 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr2' => array ( 'Titel' => 'Die 5 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr3' => array ( 'Titel' => 'Die zweite Adresse',
                                  
    'Str' => 'Musterstr',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    )
                        ),  
    // End Rubrik2
                                    
                  
    'Rubrik3' => array ( 'Adr1' => array ( 'Titel' => 'Die 6 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr2' => array ( 'Titel' => 'Die 7 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr3' => array ( 'Titel' => 'Die 8 Adresse',
                                  
    'Str' => 'Musterstr',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    )
                        ),  
    // End Rubrik3
                                  
                  
    'Rubrik4' => array ( 'Adr1' => array ( 'Titel' => 'Die 9 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr'=> array ( 'Titel' => 'Die 10 Adresse',
                                  
    'Str' => 'Testweg',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    ),
                            
    'Adr3' => array ( 'Titel' => 'Die zweite Adresse',
                                  
    'Str' => 'Musterstr',
                                  
    'Plz' => '12345',
                                  
    'Ort' => 'WoAuchImmer'
                                  
    )   
                        ) 
    // End Rubrik4
                                  
              
    ); // End All


    // Auswahl Param:
    $rubrik "Rubrik1";
    $adresse "Adr2";
    $feld "Titel";                                  


    // Ausgabe Single Feld: Funktioniert
    echo $data[$rubrik][$adresse][$feld]. "<BR>";

    // Ausgabe Datensatz: Funktioniert
    foreach($data[$rubrik][$adresse] AS $ausgabe)
     {
       echo 
    $ausgabe."<br>";
       }

    //Hier wollte ich eine Ausgabe alle Datensätze einer Rubrik erstellen: Nur wie????

    // So geht es nicht
    foreach($data[$rubrik] AS $ausgabe1)
     {
       echo 
    $ausgabe1."<br>";
       }
    ?>
    ich vermute das ich die 2 ebene irgentwie dynamisch gestallten muss. da das es ja theoretisch zu einer rubrik dann N adressen geben kann. habe außer fehlermeldungen bei meinen versuchen nichts erreicht...
    Zuletzt geändert von akira77; 17.12.2012, 10:21.

  • #2
    Ich würde sowas ja in einer Datenbank halten.
    Und mit dem RedBean ORM ist das unglaublich fix erledigt.

    Aber zu deinen Arrays: Diese wirst du mit Foreach durchlaufen müssen!
    Auch mehrere Foreach schachteln.
    Alternativ: Array_filter() mehrfach anwenden.
    Wir werden alle sterben

    Kommentar


    • #3
      ja ne datenbank ist bestimmt besser geeignet für solche sachen, aber hier ist in der theorie kein einsatz möglich.

      ich werde mal den ansatz schleifen verschachteln versuchen...
      danke schon mal

      Kommentar


      • #4
        in der theorie
        In der Theorie ist fast alles möglich.
        In der Praxis muss man sich dann meist etwas nach der Decke strecken.
        Wir werden alle sterben

        Kommentar


        • #5
          *Crossposting*
          Anfänger Probs: Array Ausgabe - PHP Forum: phpforum.de
          Wir werden alle sterben

          Kommentar


          • #6
            Verschachteln hat die erste Lösung gebracht...

            Alle Dateien einer Rubrik Anzeigen funktioniert.


            PHP-Code:
            // Ausgabe alle Datensätze nach Rubrik:
             
            foreach($data[$rubrik] AS $index => $value)
                {
                
            //echo $index;
                
                
            echo "<p>";
                
                    foreach(
            $data[$rubrik][$index] AS $ausgabe => $value)
                    {
                    echo 
            $value ."<br>";
                    }
                    
                echo 
            "</p>";
                } 
            Nun habe ich noch das Problem das ich alle Datensätze aller Rubriken anzeigen lassen möchte...

            Hat jemand ne idee ????

            Kommentar


            • #7
              Das musst Du wohl eine Dimension nach oben gehen. Du arbeitest mit einem dreidimensionalen Array (3 Ebenen). Du solltest Dich dringend über Rekursion informieren. Wenn Du das Array an mehreren Stellen in Deinem Vorhaben abarbeiten musst, macht eventuell eine rekursive Funktion oder gar eine Klasse, die Dein Array so behandelt, wie Du es möchtest, eher Sinn.

              Die einfachste Lösung wäre noch eine foreach-Schleife.
              MM Newmedia | MeinBlog

              Kommentar

              Lädt...
              X