Tree in ein Array einfügen wie?

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

  • Tree in ein Array einfügen wie?

    Hallo,

    Mir ist es ja schon fast peinlich, diese Frage überhaupt stellen zu müssen, aber es geht grad nicht anderst...

    Und zwar, ich hab ein HTML Tree ala:

    - Eintrag
    |-- Untereintrag
    |--- Untereintrag
    |----- Untereintrag
    |------- Untereintrag
    |--- Untereintrag
    |- Eintrag

    Und zwar ich möchte das Tree direkt in ein Array inkl. Untereinträge kriegen.

    Das mit den Einträgen habe ich bereits hinbekommen, jeder Eintrag hat dazu eine eigenschaft als "Single" oder "Tree".

    Ich bräuchte ein Script das mir ein Array erstellt mit den Untereinträgen, leider weiß ich nie davor wieviel Untereinträge das ding hat.

    Wie stelle ich es an, das Ich das Tree in nen Array krieg?

    Hab bereits folgenden Code fertig:


    Code:
    $stg = new stg();
    
    $tree_tmp = $stg->server_getCategorieTree("A0005600");
    
    foreach($tree_tmp as $tree_key => $tree_value)
    {
    	if($tree_value['prop'] == 'tree')
    	{
    		$cat = $stg->server_getCategorieTree($tree_value['wg']);
    		$tree_value['tree'] = array();
    		array_push($tree_value['tree'], $cat);
    		
    		foreach($tree_value['tree'] as $key => $value)
    		{
    			while($value['prop'] == 'tree')
    			{
    				$cat = $stg->server_getCategorieTree($cat['wg']);
    				$tree_value['tree'] = array();		
    				array_push($tree_value['tree'], $cat);
    			}
    		}
    	}
    	
    	
    	$tree_tmp[$tree_key] = $tree_value;
    }
    Die funktion server_getCategories, liefert mir ein Array mit den Angaben, WG, NAME und PROP (main oder tree)....

    Ergebnis:
    Code:
        [11] => Array
            (
                [wg] => A1002402
                [name] => OMNITRONIC Plattenspielergruppen
                [prop] => tree
                [tree] => Array
                    (
                        [0] => Array
                            (
                                [0] => Array
                                    (
                                        [wg] => A1063512
                                        [name] => OMNITRONIC Plattenspieler direktgetrieben
                                        [prop] => main
                                    )
    
                                [1] => Array
                                    (
                                        [wg] => A1063522
                                        [name] => OMNITRONIC Riemengetr. Plattenspieler
                                        [prop] => main
                                    )
    
                                [2] => Array
                                    (
                                        [wg] => A1063532
                                        [name] => OMNITRONIC High-Torque Plattenspieler
                                        [prop] => main
                                    )
    
                                [3] => Array
                                    (
                                        [wg] => A1063600
                                        [name] => Zubehör für Plattenspieler
                                        [prop] => tree
                                    )
    
                            )
    
                    )
    
            )
    Wie mann sieht, hakt es hier nun an den Unterkategorien, da ich leider nicht weiß wieviel Unterkategorien jeweils die Kategorie hat.

    Danke schön

  • #2
    Stichwort "Rekursion".

    Kommentar


    • #3
      Und wo finde Ich Verwendbare informationen darüber??

      Danke!

      Kommentar


      • #4
        Rekursion ist nichts PHP-spezifisches.

        http://www.google.de/search?q=rekursion

        Kommentar


        • #5
          eine rekursive Funktion ruft sich selber immer wieder so lange auf,
          so lange eine Abbruchbedingung nicht erreicht wird.

          Die Abbruchbedingung muß also gut gewählt sein,
          da das Script sonst endlos läuft (laufen will ...).

          http://www.tech-island.com/technet/t...programmieren/
          Zuletzt geändert von Koala; 26.05.2007, 19:02.

          Kommentar


          • #6
            Kann mir denn jemand freundlicher weiße einen Beispielcode anhand meiner bereits oben geposteten Funktion geben??

            Wäre echt nett, weil ich steh echt auf'm schlauch.

            Die Rekursive programmierung ist mir bekannt, aber leider fehlt es mir an der gedanklichen Umsetzung

            Kommentar


            • #7
              einen Beispielcode anhand meiner bereits oben geposteten Funktion
              Was für ein Stuss - wenn Du meinst man soll Dir den Code schreiben,
              dann schreib das auch so.

              Machen tu ichs nicht.

              Du hast einen Link mit Beispielen bekommen.

              Wenn Du nicht in der Lage bist Beispiele selbst umzuschreiben,
              dann ist Programmieren nichts für Dich.

              Dieses Minimum an "gedanklicher Umsetzung", sprich "Hirn", ist einfach Voraussetzung.

              Kommentar


              • #8
                Original geschrieben von Koala
                Was für ein Stuss - wenn Du meinst man soll Dir den Code schreiben,
                dann schreib das auch so.

                Machen tu ichs nicht.

                Du hast einen Link mit Beispielen bekommen.

                Wenn Du nicht in der Lage bist Beispiele selbst umzuschreiben,
                dann ist Programmieren nichts für Dich.

                Dieses Minimum an "gedanklicher Umsetzung", sprich "Hirn", ist einfach Voraussetzung.
                Wenn ich gesagt hätte, das mir jemand den Code schreiben hätte sollen, hätte ich dies getan. hab ich aber nicht somit komm mir nicht blöde!

                Um was ich gebeten habe war lediglich ein Beispiel, nicht mehr und nicht weniger, das ist kein Grund mich so blöd von der Seite anzufahren.

                Wir sind schließlich in einem Forum!

                Kommentar


                • #9
                  einen Beispielcode anhand meiner bereits oben geposteten Funktion
                  Dann erklrär mal was ein Beispielcode anhand Deiner Funktion sein soll.

                  Ein Beispiel ist ein Beispiel und ein konkretes Beispiel ist kein Beispiel mehr.

                  Warte noch ein paar Monate - vielleicht passiert ein Wunder.

                  Kommentar


                  • #10
                    http://de.wikipedia.org/wiki/Rekursi...ammierbeispiel
                    http://en.wikipedia.org/wiki/Recursi...mputer_science
                    http://de.wikibooks.org/wiki/Website...PHP:_Rekursion
                    http://devzone.zend.com/node/view/id/1235

                    Wenn du alles gelesen und noch nichts verstanden hast, sind dir unterwegs jedenfalls genug Begriffe begegnet, um Google zu füttern.

                    Kommentar


                    • #11
                      Original geschrieben von Koala
                      Dann erklrär mal was ein Beispielcode anhand Deiner Funktion sein soll.

                      Ein Beispiel ist ein Beispiel und ein konkretes Beispiel ist kein Beispiel mehr.

                      Warte noch ein paar Monate - vielleicht passiert ein Wunder.
                      Pass mal auf, unter einem Beispiel verstehe Ich einen Ansatz wie man anfangen könnte, jedoch kein kompletten Code.

                      Wenn ich jedoch einen Code hätte wollen, hätte Ich sicherlich gepostet
                      "Wer ist so dumm und programmiert mir die gewünschte Funktion?"

                      Du musst dich wohl schon für was besseres halten, wenn du gleich Neulinge dumm von der Seite anbabbelst ohne dir mal angehört zu haben was Sie überhaupt wollen.

                      Ja ich warte wohl lieber noch ein paar Monate, vielleicht hat sich in deiner Birne was getan und du bist mal etwas menschen freundlicher.
                      Leider scheint mir, du hattest wohl kein glück wo die freundlichekeit ausgeteilt wurde...


                      Trotzdem danke an alle

                      Kommentar


                      • #12
                        Danke, dein Beitrag hat mir geholfen, problem bereits gelöst..

                        Werde hier die Funktion posten, für User die das auch mal brauchen oder mal an bestimmte User geraten...

                        Code:
                        $tree_tmp = getTree("A0005600");
                        
                        function getTree($wg)
                        {
                        	$stg = new stg();
                        
                        	$tree_tmp = $stg->server_getCategorieTree($wg);
                        	
                        	if(is_array($tree_tmp)){
                        		foreach($tree_tmp as $key => $value)
                        		{
                        			if($value['prop'] == 'tree')
                        			{
                        				$array[] = getTree($value['wg']);
                        				$array[] =  array('wg' => $tree_tmp['wg'],'name' => $tree_tmp['name'],'prop' => $tree_tmp['prop']);
                        			}
                        			
                        			if(is_array($array))
                        			{
                        				$tree_tmp[$key]['nodes'] = $array;
                        				unset($array);
                        			}
                        		}
                        	}
                        
                        	return $tree_tmp;
                        }
                        Zuletzt geändert von Sany; 29.05.2007, 19:54.

                        Kommentar

                        Lädt...
                        X