Вы можете использовать рекурсию.
Сделать processArray($o, $a, $f, $b = false)
Параметры
$o
- массив ввода
$a
- аккумуляторная батарея
$f
- путь к файлу аккумулятора
$b
- это для проверки, если функция сначала вызывается
<code>function processArray($o, $a = array(), $f = array() , $b = true){
foreach( $o as $k => $v ) {
if ( is_array( $v ) ) {
$f[] = $k;
if ( $b ) $f = array($k);
$a = processArray( $v, $a, $f, false );
} else {
$r = implode('/',$f);
$a[] = $r === '' ? $v : $r . '/' . $v;
}
}
return $a;
}
$result = processArray( $file_tree ); //Call the function
echo "<pre>";
print_r( $result );
echo "
";
Это приведет к:
Array
(
[0] => img
[1] => js/src
[2] => js/min
[3] => js/libraries/jquery.js
[4] => src/controller/user
)