Dynamische Variablen einer Array

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

  • Dynamische Variablen einer Array

    Hallo,

    ich habe eine Array (
    PHP-Code:
    $menu = array('wert1','sub-wert1','sub-sub-wert1','wert2','sub-wert2'); 
    ), die ich in eine multidimensionale Array (
    PHP-Code:
    $menu = array('wert1',array('sub-wert1',array('sub-sub-wert1')),'wert2',array('sub-wert2')); 
    ) umwandeln möchte.
    Am besten sind da Variable Variablen (dyn. Variablen) geeignet. Nur weiss ich nicht, wie ich diese auf array's anwenden.
    Es muss über n-Stufen realisierbar sein. --> $menu[0][0][1][2][0]....

    PHP-Code:
    $menu."[0][0]" "sub-wert1"
    funktioniert nicht.

    danke

  • #2
    aber
    PHP-Code:
    $menu[0][0] = "sub-wert1"
    funzt doch. oder was soll rauskommen?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ok war schlechtes beispiel

      ich versuche zuerst die erste ebene in eine array einzutragen -->

      for schleifen mit allen werten der ersten ebene

      PHP-Code:
      $level=2
      for($i=0;$i<count($menu_erster_level;$i++){
         
      $array_add str_repeat("[]",$level); // erzeugt "[][]"
         
      $menu_nav.$array_add $menu[$i];

      ich hoffe es ist besser verständlich
      ich weiss, dass das beispiel mit der obigen frage nicht ganz übereinstimmt was die zuweisung der werte angeht. aber das lös ich selber.
      ich will ein array dynamisch erzeugen

      Kommentar


      • #4
        irgendwie ist das von dir immer noch sehr verwirrend.

        was soll denn am ende da stehen?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          am schluss ist es eine kombination aus der pear klasse nestedset, die eine zweidimensionale array ausgibt und der KlasseMenu3 die eine multidimensionale Array verlangt.
          So muss ich über die zweidimensionale Array gehen und ein Merdiensionale array erzeugen. Dies geht nur über dynamische Variablen.

          Kommentar


          • #6
            post doch mal bitte endlich ein array, wie es am ende auszusehen hat!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              von

              PHP-Code:
              $menu = array(
                            
              => array(
                                    
              "url"   => "/",
                                    
              "title" => "Home"
                                  
              ),
                                  
                            
              => array(
                                    
              "url"   => "about/",
                                    
              "title" => "About PEAR"
                                  
              ),

                            
              => array(
                                    
              "url"   => "download/",
                                    
              "title" => "Download"
                                  
              ),

                            
              => array(
                                    
              "url"   => "installation/",
                                    
              "title" => "Installation"
                                  
              ),

                            
              => array(
                                    
              "url"   => "inside/",
                                    
              "title" => "CVS"
                                  
              ),

                            
              => array(
                                    
              "url"   => "inside/cvs/",
                                    
              "title" => "Installation"
                                  
              ),
                            
              => array(
                                    
              "url"   => "inside/guide/",
                                    
              "title" => "Coding Guidelines"
                                  
              ),
                            
              => array(
                                    
              "url"       => "packages/",
                                    
              "title"     => "Packages"
                                  
              )

                          ); 
              nach
              PHP-Code:
              $menu = array(

                            
              => array(
                                    
              "url"   => "/",
                                    
              "title" => "Home"
                                  
              ),
                                  
                            
              => array(
                                    
              "url"   => "about/",
                                    
              "title" => "About PEAR"
                                  
              ),

                            
              => array(
                                    
              "url"   => "download/",
                                    
              "title" => "Download"
                                  
              ),

                            
              => array(
                                    
              "url"   => "installation/",
                                    
              "title" => "Installation"
                                  
              ),

                            
              => array(
                                    
              "url"   => "inside/",
                                    
              "title" => "Inside PEAR",
                                    
              "sub"   => array(
                                    
                                                  
              41 => array(
                                                            
              "url"   => "inside/cvs/",
                                                            
              "title" => "CVS"
                                                          
              ),
                                                           
                                                  
              42 => array(
                                                            
              "url"   => "inside/guide/",
                                                            
              "title" => "Coding Guidelines"
                                                          
              )
                                                          
                                                )
                                  ),
                            
                            
              => array(
                                    
              "url"       => "packages/",
                                    
              "title"     => "Packages"
                                  
              )

                          ); 
              Zuletzt geändert von kreon; 12.01.2004, 14:19.

              Kommentar


              • #8
                ich wüsste spontan nicht, wie man das dingens fix und unaufwendig umstellen kann.

                vielleicht hat wer anders ne idee...
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  mal als ansatz:
                  PHP-Code:
                  $count count($menu);
                  $alturl NULL;
                  $z=0;
                  $k=1;
                  $out = array();
                  for(
                  $i=0;$i<$count;$i++)
                  {
                      
                  $url explode('/',$menu[$i]['url']);
                      if(
                  $url[0] == $alturl && !is_null($alturl))
                      {
                          
                  // hier eine funktion einbauen, die rekursiv nachgeschaltete
                          // arrays abarbeitet

                          // simpel beispiel:
                          
                  $out[$z-1]['sub'][($z-1).$k] = $menu[$i];
                          
                  $k++;
                      }
                      else
                      {
                          
                  $alturl $url[0];
                          
                  $out[$z]['url'] = $menu[$i]['url'];
                          
                  $out[$z]['title'] = $menu[$i]['title'];
                          
                  $z++;
                          
                  $k=1;
                      }
                  }
                  echo 
                  "<pre>";
                  print_r($out); 
                  für eine tiefere struktur musst du eine rekursive funktion einbauen, die dir die gewünschte array-struktur liefert.
                  Kissolino.com

                  Kommentar

                  Lädt...
                  X