2017-10-24 2 views
0

これは通常、Array to Arrayとは異なります。URLパスのStarハーフピラミッドパターン

私は何を求めているのかについてTittleで名前を付ける方法を知りません!!

最初に:悪い英語については申し訳ありません。

: は、だから以下この...

セカンドを参照してください。私はサーバーでビルドを使用します:PHP職人のサービス

b。私はPHPで、このような配列を持っていたい :フレームワークはLaravel 5.4

である私は、URL http://127.0.0.1:8000/file/999090/img/img-2as

host  : 127.0.0.1:8000 etc 

main-folder : {/file} Where i store my image 

folder-id : {/990909} This is just id for each folder 

sub-folder : {/img} Each id has many sub folder [example] 

filde-name : {/img2-as} Just file name [example] 

を持っているので、これは問題である

$array = [ 
    0 => '/file', 
    1 => '/file/990909', 
    2 => '/file/990909/img', 
    3 => '/file/990909/img/img-2as' 
]; 

答えて

0

この

$root = '/'; // !!! CHANGE THIS WITH YOUR OWN FOLDER!!! 

    $iter = new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS), 
     RecursiveIteratorIterator::SELF_FIRST, 
     RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" 
    ); 

    $paths = array($root); 
    foreach ($iter as $path => $dir) { 
     if ($dir->isDir()) { 
      $paths[] = $path; 
     } 
    } 

    print_r($paths); 
+0

私のLaravel:RecursiveDirectoryIterator :: __ construct(/ file、/ file)に次のようなエラーがあります:指定されたファイルが見つかりません。 (コード:2) –

+0

$ root = '/'; あなたはどのフォルダを提供しましたか? –

+0

'/ file' Reallyフォルダ内にファイルがあるはずですか?はいの場合は私を許してください。 –

0

を試してみてください私はすでにこのように管理しています:

$parts = "assets/theme/dist/img//img/user2-160x160.jpg"; 
$path = explode('/', $parts); 
for($i=0;$i<count($path);$i++){ 
    for($j=0;$j<$i;$j++){ 
    echo "/".$path[$j]; 
    } 
    echo "\n"; 
} 

そして結果である:

/資産

/資産/

/資産/テーマ/ distの

/資産/テーマ/ DIST/IMG

/アセット/テーマ/ dist/img/

/assets/theme/dist/img/img

これは、私が配列に入れたいと思うものですが、すでにarray_pushを使っていますが、結果は悪いです。

0

Imすでに見つかりました。ちょうどあなたのPHPファイルをコピーします。

$path  = "assets/adminlte/dist/img/user2-160x160"; 
$asd  = explode('/', $path); 

$num  = count($asd)-1; 
$arr  = []; 

for($i=0;$i<count($asd);$i++) { 
    for($j=0;$j<=$i;$j++){ 
     @$arr[$i] .= "/".$asd[$j]; 
    } 
} 

echo "\n"; 

print_r($arr);