• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Arrays und Objekte

Tronjer

Senior HTML'ler
Ich tu mich beim Umstieg von JS in PHP immer etwas schwer.
PHP:
$tab = $_POST["tab"]; //"bar"

$top_five = array(
  "bar" => array(
    "top_1" => array(
      "image" => "dummy.jpg",
      "name" => "Kitty"
    )
  ),
  "foo" => array(
    "top_1" => array()
  )
);

foreach ($top_five[$tab] as $key => $value) {
  foreach($value as $item => $property) {
    echo $item . "<br>"; //image, name
    echo $property . "<br>"; // dummy.jpg, Kitty
  }
}

Dieses Foreach liefert alle Elemente der dritten Array-Ebene zurück. Das will ich aber nicht, sondern gezielt auf einzelne Properties eines Objekts zugreifen. Das soll von der Ausgabe dann so aussehen:

/edit: War ein Denkfehler. Ich kann hier natürlich keine verschachtelte Foreach verwenden.
 
Zuletzt bearbeitet:
Werbung:
Wenn du mit PHP Arbeitest hast du meistens eher selten solche verschachtelten Strukturen. Meistens hast du nur soetwas wie ein einfaches Array welches eine Art HashMap Array enthält. Also eine Grundeben die du Per [zahl] aufrufst und dann ein Array darin, welches einen beschreiber hat. Dieses ist ja z.b. beim Arbeiten mit MySQL so.

Wenn du als Wert des Grundarrays keine Weiteren Arrays hast sind es sonst meistens noch Objekte, welche wiederrum einen haufen von eigenschaften haben können.

Wenn du Versuchst das Layout in PHP zu definieren (Oder sonst irgendetwas auf das ich bei dem Beispiel nicht komme) kannst du hier gerne ein Paar deiner Ideen niederschreiben und ich gucke mal was mir dazu so einfällt. Hab bestimmt den einen oder anderen Tipp.
 
Beim obigen Beispiel ging es nur um einen Dummy, der die zurückgelieferten Werte eines Datenbank-Queries simulieren soll, die ich dann per AJAX abhole. Die erste Array-Ebene kann beliebig viele Elemente enthalten, die zweite genau fünf und die dritte besitzt auch wieder beliebige Elemente. Meine Überlegung war, wie ich auf die Elemente der dritten Ebene einzeln zugreife, und deshalb hatte ich die zweite Foreach geschrieben, was natürlich Unfug gewesen ist. In der Praxis wird auch nicht dieses Konstrukt verwendet, sondern ich erhalte die Zuleitung der Daten vom Backend geliefert.

Aber ich komme auf dein Angebot gerne zurück, wenn es mal wieder aktuell sein sollte. Es ist bei mir manchmal eine gedankliche Umstellung von JavaScript zu PHP. In JS habe ich immer ein Objekt, ein Objekt besitzt Properties und diese Properties kann ich direkt beim Namen ansprechen, um ihre Werte auszugeben.
 
Werbung:
Zurück
Oben