Per Rekursion ein Array aufbauen

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

  • Per Rekursion ein Array aufbauen

    Hallo Leute,

    ich grübel gerade vergelblich an einem Rekursionsproblem. Ich bekommen so ein Array geliefert:
    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    ForumCategoryID] => 26
                
    [CategoryDescription] => Content
                
    [SortNo] => 0
                
    [ContainsCategoriesOrForums] => 3
            
    )

        [
    1] => Array
            (
                [
    ForumCategoryID] => 23
                
    [CategoryDescription] => Eintrag 1
                
    [SortNo] => 1
                
    [ContainsCategoriesOrForums] => 3
            
    )

        [
    2] => Array
            (
                [
    ForumCategoryID] => 27
                
    [CategoryDescription] => Eintrag 2
                
    [SortNo] => 2
                
    [ContainsCategoriesOrForums] => 2

    Wenn in ContainsCategoriesOrForums der Wert = 3, dann befindest sich darunter wieder Arrays, die ich von DB abfragen muss. Nun muss ich rekursiv ein Array aufbauen, dass den kompletten Baum abbildet. Ich scheitere irgendwie bei Handling mit den Arrays und der Tiefe. Hat jemand einen Tipp?

    Danke Georg

  • #2
    Es richtig machen?

    Das übergeordnete Array als Referenz an die hoffentlich vorhandene Funktion übergeben?

    Nicht immer die Db abfragen, sondern lieber einmal alle Daten holen und dann rein von PHP bearbeiten lassen?

    Codebeispiele zeigen?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Das übergeordnete Array als Referenz an die hoffentlich vorhandene Funktion übergeben?
      Das könnte wohl helfen.

      Nicht immer die Db abfragen, sondern lieber einmal alle Daten holen und dann rein von PHP bearbeiten lassen?
      Muss ich! Die Daten kommen aus einer Prozedur, anders kann/darf ich nicht drauf zugreifen.
      Codebeispiele zeigen?
      Wenn ich mal was sinnvolles zeigen könnte. Ok trotzdem hier ein lausiger Versuch.

      PHP-Code:
          function buildTree ($ConnectionID$UniqueID$CurrentForenID)
          {

              for(
      $i=0$i count($CurrentForenID);$i++)
              {

                  
      $this->ForumsTree[][$i] = $CurrentForenID[$i];
                  if(
      $CurrentForenID[$i]['ContainsCategoriesOrForums']==3)
                      
      $this->buildTree($ConnectionID$UniqueID$CurrentForenID[$i]);
              
              } 

          } 

      Kommentar


      • #4
        Ich komme nicht weiter

        Kommentar


        • #5
          Hi !

          Ich hatte vor längerer Zeit auch mal so ein Problem. Such mal nach "Array Menü" mein ich ... oder einfach nach meinem Benutzernamen. Vielleicht hilft dir das weiter.

          Gruß

          Le Cheffe

          Kommentar


          • #6
            @Le_Cheffe

            Der damalige Thread
            wird ihm nicht helfen, weils damals auch keine Antworten gab.

            Findest Du noch Deine Lösung von damals?
            Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

            Kommentar


            • #7
              Hi !

              Hilfe könnte das durchaus sein, da ja die rekursive Funktion ansich funktioniert.
              Meine Lösung war zum einen, dass ich bei einem Parameter geblieben bin. $page ist nun sowas wie "menuehaumichtot,1.1" ... darauf mach ich wiederum 2x explode (1. nach "," das 2. nach ".") und schon sehe ich, in welchem Menü ich bin.

              Gruß

              Le Cheffe

              Kommentar

              Lädt...
              X