Mehrdimens. Array aus Variable

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

  • Mehrdimens. Array aus Variable

    Hallo,

    zu meinem Problem, bei dem mir leider niemand helfen konnte (http://www.php-resource.de/forum/sho...threadid=57985) ist mir nun etwas eingefallen. Doch leider kann ich es nicht wirklich umsetzen.

    Ich baue mir aus dem aktuellen Pfad eine Variable, aus der ich ein Array erstellen lassen möchte. Doch leider klappt das nicht so, wie ich mir das wünsche.

    Die Variable sieht z. B. so aus:

    PHP-Code:
    $blah='[verz][uverz][uuverz][uuuverz][uuuuverz][uuuuuverz]'
    Nun soll daraus ein mehrdimensionales Array werden, dem ich einen Wert zuweisen kann. Das sollten dann so aussehen:

    Code:
    Array (
      [verz] => Array (
                  [uverz] => Array (
                               [uuverz] => Array (
                                            [uuuverz] => Array
                                                          [uuuuverz] => ... usw.
    Versucht habe ich es u. a. so:

    PHP-Code:
    ${'tmp'.$blah}='wert';

    und

    $varar
    =${'tmp'}.$blah
    Doch das generiert mir Variablen, im besten Fall ein eindimensionales Array mit der Ursprungsvariable als Wert.

    Gibt es eine Möglichkeit, aus der Variable ein Array zu generieren? Die Variable $blah wird in einer Schleife generiert und soll dann dem Array immer wieder hinzugefügt werden. Spricht, das Array soll wachsen, folglich mehrere Dimensionen bzw. Ebenen erhalten können.

    Beim ersten Durchlauf sieht die Variable so aus:

    $blah='[verz][uverz][uuverz][uuuverz][uuuuverz][uuuuuverz]';

    beim zweiten dann z. B.

    $blah='[verz][uverz][uuverz][uuuverz2]';

    beim dritten evtl.

    $blah='[verz][uverz][uuverz][uuuverz][uuuuverz][uuuuuverz2]';

    usw.

    Ich hoffe, mir kann jemand helfen. Ich sitze nun seit 4 Tagen an diesem Problem und glühe. Aber mir fällt keine Alternative, geschweige denn eine Lösung ein

  • #2
    wäre schon machbar. darf ich vorher fragen, was das für einen sinn hat?

    Kommentar


    • #3
      Selbstverständlich darfst du

      Das Problem habe ich im oben genannten Thread beschrieben, aber hier nochmal verkürzt:

      Eine Klasse (ohne rekursiver Vorgehensweise) liest ein Verzeichnis samt aller Unterverzeichnisse und Dateien aus. Für die Darstellung eines Verzeichnisbaumes benötige ich aber (zwingend) ein Array, welches diesen Baum abbildet. Die Klasse an sich stellt diese Funktionalität nicht zur Verfügung und diese Funktionalität ist das, was ich eben erfolglos zu basteln versuche.

      Wie das Array ca. aussehn soll, sieht man hier (ich will das nicht nochmal posten, wenns schon einmal vorhanden ist): http://www.php-resource.de/forum/sho...threadid=57985

      Ich habe das nun noch folgendermaßen modifiziert, um die Variable zu generieren:

      PHP-Code:
                  $tt=explode("/",$fullName);
                  
      $blubb='';
                  foreach(
      $tt as $nam) {
                   if (
      $nam) {
                    
      $blubb.='['.$nam.']';
                   }
                  }
                  
      $varar=${'aha'}.$blubb
      ab Zeile 19 meiner modifizierten Version der Klasse.

      Kommentar


      • #4
        ist es vielleicht das, was du suchst?
        http://de3.php.net/manual/en/function.readdir.php#46083
        von "Rick at Webfanaat dot nl"

        Kommentar


        • #5
          Das Prinzip ja, jedoch wollte ich eigentlich keine rekursive Funktion verwenden. Darum habe ich die Klasse von matthew dot panetta at gmail dot com (ebenfalls bei php=>readdir) verwendet.

          Kommentar


          • #6
            warum nicht? man muss zugeben, seine (Rick) lösung ist recht elegant, dafür, dass er rekursion benutzt. die frickelei mit den strings, die du an metthews klasse anbindest, ist es nicht.

            Kommentar


            • #7
              Das ist sie durchaus, will ich auch nicht bestreiten. Für andere Zwecke jedoch wiederum nicht.

              Z. B. für die Generierung von Select-Boxen, welche nur Verzeichnisse mit Dateien ausgeben, und zwar so:

              <optgroup label="verz => uverz => uuverz">
              <option datei1>
              <option datei2>
              </optgroup>
              <optgroup label="verz => verz2">
              <option ...

              Ich wollte diese Klasse einfach ausbauen, so dass sie für alle meine Zwecke universell einsetzbar ist. Aber ich stoße immer wieder auf Probleme und Fragen, so dass ich wohl (oder übel) die Klasse und die rekursive Funktion nutzen (müssen) werde.

              Ich danke dir für die Hilfeleistung.

              Aber jetzt abgesehen von meiner speziellen Problematik, wäre es überhaupt möglich, aus so einer Variable (oder aus einem oder mehreren eindimensionalen Array(s)) ein mehrdimensionales Array zu machen?

              Z. B. aus

              $x=array('a','b','c')
              $y=array('a','b','c2','d')

              das Array

              $s=array('a' => array('b' => array('c','c2' => array('d'))))

              zu erstellen?

              Kommentar

              Lädt...
              X