Baumstruktur: 1. Nur Vater ausgeben 2. Funktion sortieren
Michi
- php
0 jobo0 Vinzenz Mai
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
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
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
مرحبا
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