我正在迭代文件夾並以某種方式格式化其內容。從特定格式的字符串構建數組層次結構
我已經形成從這組字符串數組:
home--lists--country--create_a_country.jpg
home--lists--country--list_countries.jpg
profile--edit--account.jpg
profile--my_account.jpg
shop--orders--list_orders.jpg
的陣列需要看起來像這樣:
<?php
array(
'home' => array(
'lists' => array(
'country' => array(
'create_a_country.jpg',
'list_countries.jpg'
)
)
),
'profile' => array(
'edit' => array(
'account.jpg'
),
'my_account.jpg'
),
'shop' => array(
'orders' => array(
'list_orders.jpg',
)
);
的事情是,該陣列的深度可取決於文件名有多少個「 - 」分隔符。下面是我試了一下(假設每個字符串從陣列中來:?
$master_array = array();
foreach($files as $file)
{
// Get the extension
$file_bits = explode(".", $file);
$file_ext = strtolower(array_pop($file_bits));
$file_name_long = implode(".", $file_bits);
// Divide the filename by '--'
$file_name_bits = explode("--", $file_name_long);
// Set the file name
$file_name = array_pop($file_name_bits).".".$file_ext;
// Grab the depth and the folder name
foreach($file_name_bits as $depth => $folder)
{
// Create sub-arrays as the folder structure goes down with the depth
// If the sub-array already exists, don't recreate it
// Place $file_name in the lowest sub-array
// .. I'm lost
}
}
任何人都可以闡明我怎麼可能會做一些這方面的光所有Insight讚賞
w001y
任何你所關心的文件前的原因張力?因爲你的代碼似乎並沒有真正使用它。 – Passerby 2013-05-08 05:25:34
完全不關心文件擴展名,只是上面的一個例子。 – w001y 2013-05-08 05:52:13