Michi: Baumstruktur: 1. Nur Vater ausgeben 2. Funktion sortieren

Ich bin immer noch an meiner Baumstruktur und Menüfunktion. Eigentlich ist sie jetzt soweit klar, doch je tiefer ich gehe, desto komplizierter wird es für mich.

Problem 1 :

Ich brauche nicht die ganzen Ausgaben sondern nur die letzte Ausgabe, so dass ich den Vater habe

function VaterSohn($mein_array,$zahl,$zuordnung=0)  
        {  
        foreach($mein_array as $key=>$value)  
                {  
                if ($value['id']==$zahl)  
                        {  
                        echo $value['name'].'<br>';  
                        VaterSohn($mein_array,$value['zuordnung']);  
                        }  
                }  
  
        }  
  
  
VaterSohn($mein_array,3);  
  

(3) Das ist die ID von der aus er startet und die Zuordnungen einliesst

Ergebnis:
-------------------
Submenu2
Submenu1
Main1

Ich brauche aber nur:

Main1

Problem 2:

Die Ausgabe erfolgt so

Ergebnis:
-------------------
Submenu
Submenu
Main1

Sie sollte aber rückwärtig erfolgen:

Ergebnis:
-------------------
Main1
Submenu 1
Submenu 2

Gibt es eine einfache Möglichkeit dies in meine Funktion einzubauen, oder sollte ich einfach das Ergebnis, in ein array schreiben und das anschließend sortiert ausgeben?

Michi

  1. Hallo,

    naja, so scheinst du keine Antwort zu bekommen, obwohl PHP-Experten heute aktiv waren. Das liegt vermutlich an der Aufbereitung deiner Fragestellung. Vielleicht brichst du sie auf das Prinzipielle runter. Oder nutzt mal sinnige Bezeichner. VaterSohn gibts in html nicht. Child schon eher. ParentNode auch. Wenn ein Parameter eine id sein soll, nenne ihn $id statt $zahl. Ich kapier nicht, wieso du VaterSohn() rekursiv aufrufst. Auch nicht, was in dem sinnfrei benannten my_array steht.

    Ergebnis:

    Submenu
    Submenu
    Main1

    Naja
    if (irgendeineBedinung) continue;

    Sie sollte aber rückwärtig erfolgen:

    Ergebnis:

    Main1
    Submenu 1
    Submenu 2

    Dann sind Deine Daten vielleicht falsch rum. Ich dachte, Submenu1/2 soll garnicht ausgegeben werden ...;

    Reduziere Dein Problem auf eine simple Struktur und teste das mit sinniger Benamung bzw. poste dann hier ...;

    Gruß

    jobo

  2. Hallo,

    Ich bin immer noch an meiner Baumstruktur und Menüfunktion. Eigentlich ist sie jetzt soweit klar, doch je tiefer ich gehe, desto komplizierter wird es für mich.

    Deine Problemstellung ist die Gleiche wie die von Malcolm Beck's. Daher gilt die gleiche Empfehlung wie von dedlfix:

    Naive Trees
      - Adjazenzliste (von Dir verwendet)
      - Path Enumeration (Erweiterung, wie von Malcolm Beck's angegangen)
      - Nested Sets
      - Closure Table

    http://jdobbie.blogspot.de/2009/07/closure-trees.html, ab Folie 48.

    Freundliche Grüße

    Vinzenz

    1. مرحبا

      Naive Trees
        - Adjazenzliste (von Dir verwendet)
        - Path Enumeration (Erweiterung, wie von Malcolm Beck's angegangen)
        - Nested Sets
        - Closure Table

      Ich hab noch eine möglichkeit, mit der man das ganze bewerkstelligt, ohne eine zusätzliche Tabelle anzulegen.
      Man geht die aufrufende URL einfach Rückwärts durch.
      Siehe hier. Die gefundenen itemIDs sind alle richtig und können dann zur weiteren Verarbeitung im Script genutzt werden.
      Lösen konnte ich das mit 2 einfachen Funktionen, bei bedarf kann ich es gerne mal posten.

      mfg