Creazione lista di path da array multidimensionale

We, sto sbattendo da 8 ore per creare una lista di paths da un array multidimensionale del tipo :

$directories = array(
   'application' => array(
      'config'  => null,
      'modules' => array(
         'admin'    => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'blog'       => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'default'   => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'feeds'    => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'news'       => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'user'       => array('controllers'=> null, 'models'=> null, 'views'=> null))
      ),
   'images'=> null,
   'contents' => array(
      'plugins'=> null)
   );
DUMP : 
Array
(
    [application] => Array
        (
            [config] => 
            [modules] => Array
                (
                    [admin] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                    [blog] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                    [default] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                    [feeds] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                    [news] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                    [user] => Array
                        (
                            [controllers] => 
                            [models] => 
                            [views] => 
                        )

                )

        )

    [images] => 
    [contents] => Array
        (
            [plugins] => 
        )

)

Il risultato dovrebbe essere un array contenente tutte le path ( corrette ovviamente :P )  :

array (
[0] => '/application/',
[2] => '/application/modules/',
[3] => '/application/modules/default/',
[4] => '/application/modules/default/models/',
[5] => '/application/modules/default/views/',
[6] => '/application/modules/default/controllers/',
[7] => '/application/modules/blog/',
[8] => '/application/modules/blog/models/',
....
[n] => 'path/sottodir/sottodir/sottodir/'
)

 e così via ....

qualcuno mi sa aiutare per piacere?

 :bye:

inviato 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
<?php
$directories = array(
   'application' => array(
      'config'  => null,
      'modules' => array(
         'admin'    => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'blog'       => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'default'   => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'feeds'    => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'news'       => array('controllers'=> null, 'models'=> null, 'views'=> null),
         'user'       => array('controllers'=> null, 'models'=> null, 'views'=> null))
      ),
   'images'=> null,
   'contents' => array(
      'plugins'=> null)
   );
   
function getPath($pathArray, &$newPathArray, $pathStr = "") {
   foreach ($pathArray as $dirName => $subPath) {
      if(is_array($subPath)) {
         $pathStr .=  "/" . $dirName;
         getPath($subPath, &$newPathArray, $pathStr);
      }  else {
         $newPathArray[] = $pathStr .  "/" .$dirName;
      }
   }
}

$newPathArray = array();
getPath($directories, &$newPathArray);
print_r($newPathArray);
?>

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Oddio che cosa, il mio era simile a questo a parte la simpatica ampersend davanti a $newPathArray :D

ecco perché non andava :2funny:

Grazie Mille Gianni!

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ma che diamine ho detto ?! ROFL

non ci siamo proprio :D riguardandola la mia era totalmente diversa, simile, ma diversa :2funny:

auahuahua ero ubriaco!

Vabbé basta che la tua funziona :D

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda