Multiple Arrays

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Multiple Arrays

    Hallo,

    ich hab da mal eine Frage an euch, ich bräuchte jemanden, der mir einmal Multiple Arrays erklären kann bzw. einen Link zusenden könnte wo dieses erklärt wird.
    Denn ich möchte nämlich Datensätze aus der DB auslesen und diese Datensätze einer Kategorie zu Ordnen. Sprich es gibt z.b. 2 Kategorien und in den Datensätzen stehen die IDs der Kategorien und ich möchte, dass die Datensätze der Kategorien zu geordnet werden. Im moment geschieht dieses nämlich noch nicht da werden alle Datensätze bei allen Kategorien Angezeigt.

    Hier mal eine Verdeutlichung, wie es im moment aussieht.
    --- Kategorie 1
    ------ Link 1
    ------ Link 2
    ------ Link 3
    ------ Link 4
    --- Kategorie 2
    ------ Link 1
    ------ Link 2
    ------ Link 3
    ------ Link 4

    und mit den Multiple Arrays soll es am ende so aussehen:
    --- Kategorie 1
    ------ Link 1
    ------ Link 4
    --- Kategorie 2
    ------ Link 2
    ------ Link 3
  • Einen guten Link, welcher mehrdimensionale Arrays erklärt, hab ich gerade nicht zur Hand, aber vielleicht hilft dir folgendes Beispiel...

    Quellcode

    1. $kategorie = array();
    2. $kategorie[1][] = "Link1";
    3. $kategorie[2][] = "Link2";
    4. $kategorie[2][] = "Link3";
    5. $kategorie[1][] = "Link4";
    6. print_r($kategorie);

    gibt diese Ausgabe:

    Quellcode

    1. Array
    2. (
    3. [1] => Array
    4. (
    5. [0] => Link1
    6. [1] => Link4
    7. )
    8. [2] => Array
    9. (
    10. [0] => Link2
    11. [1] => Link3
    12. )
    13. )
    Alles anzeigen
  • Hm, ich danke dir schonmal jedoch hab ich noch 2 Fragen.

    1. Wie soll ich das denn machen mit einer MySQL DB? :D Ich meine ich muss die Daten ja irgendwie auchlesen und übergeben
    2. Wenn ich das ausgelesen habe wie übergebe ich das denn dan an die Seite?
    Irgendwie stehe ich bei diesem mehrdimensionale Arrays auf dem schlauch.
  • Also ich hab meine Navigation auch in der MySQL-DB, allerdings wird das dann sofort wiedergegeben, anstatt noch in einem Array zu speichern (könnte auch alles für eine spätere wiedergabe in einer Variable speichern).

    Wenn du mit diesen Links nicht weiter arbeiten willst, würde ich dir raten, es sofort ausgeben zu lassen, oder zumindest in einer variable schon fertig zu speichern. Vorallem, wenn dazu dann noch n Text, ne Beschreibung oder so soll, dann brauchst du ja nochmal eine Unterordnung der Variablen.

    Falls dich interessiert, wie das bei mir aussieht (habe auch Kategorien und dann die zugeordneten Link):

    Quellcode

    1. echo "<div id=\"navigation\">\r\n";
    2. $ergebnis = $mysqli->query("SELECT id, aktiv, name, url, rechte FROM navigation_kategorie ORDER BY stelle");
    3. $link_2 = "";
    4. echo "<ul>\r\n";
    5. while ($result = $ergebnis->fetch_object())
    6. {
    7. if ($result->aktiv == "1")
    8. {
    9. $navi_kate_id = $result->id;
    10. $abfrage = $mysqli->query("SELECT id, aktiv, name, url, rechte FROM navigation_links WHERE kategorie_id = '$navi_kate_id' ORDER BY stelle");
    11. $link_1 = "<li>";
    12. $link_1 .= "<a href=\"".$result->url."\">";
    13. $link_1 .= bbcode($result->name)."</a>\r\n";
    14. if ($abfrage->num_rows != NULL)
    15. {
    16. $link_1 .= "<ul>\r\n";
    17. $link_3 = "";
    18. while ($row = $abfrage->fetch_object())
    19. {
    20. if ($row->aktiv == "1")
    21. {
    22. $link = "<li><a href=\"".$row->url."\">";
    23. $link .= bbcode($row->name)."</a></li>"."\r\n";
    24. $link_3 .= $link;
    25. }
    26. }
    27. }
    28. $link_1 .= $link_3;
    29. $link_1 .= "</ul>";
    30. }
    31. $link_1 .= "</li>\r\n";
    32. $link_2 .= $link_1;
    33. }
    34. echo $link_2;
    35. unset($link, $link_1, $link_2, $link_3);
    36. echo "</ul>\r\n";
    37. echo "</div>\r\n";
    Alles anzeigen


    (es ist jetzt gut möglich, dass noch irgendwo n Fehlerhaftes Zeichen ist, da ich die Verarbeitung der Links rausgelöscht habe)