任何人都可以告訴我爲什麼$ output數組始終只是foreachloop的最後一個$ tmp數組。數組合並將不會在foreach中工作php
IM拉頭髮這裏..
private function create_dir_array($dirs) {
$output = array();
foreach ($dirs as $key => $path) {
$path = split('/',$path);
$tmp = array();
$counter = count($path)-1;
for($i = $counter; $i >= 0; $i--)
{
$tmp = array($path[$i] => $tmp);
}
$output = array_merge($output, $tmp);
}
print("<pre>".print_r($output,true)."</pre>");
}
,如果有這樣的陣列
Array
(
[0] => archive/folder1
[1] => archive/folder1/subfolder1
[2] => archive/folder2
.....
)
,我想這個數組出給定數據的 可能任何人有這更好更簡單的想法?
Array
(
[archive] => Array(
[folder1] => Array(
[subfolder1] => Array()
)
)
[folder2] => Array(
......
)
可能是因爲你想在內部循環中使用'$ tmp [] = array($ path [$ i] => $ tmp);'。 – 2014-10-12 00:57:30