Dynamische Variablen einer Array

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 |


    Comment


    • #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

      Comment


      • #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 |


        Comment


        • #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.

          Comment


          • #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 |


            Comment


            • #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"
                                  
              )

                          ); 
              Last edited by kreon; 12-01-2004, 14:19.

              Comment


              • #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 |


                Comment


                • #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

                  Comment

                  Working...
                  X