我有一个树状的结构化数组:
Array
(
[dir1] => Array
(
[file1] => ...
[dir2] => Array
(
[file1] => ...
[file2] => ...
)
)
)
我想获得一个路径名数组:
Array
(
[file1] => ....
[dir2/file1] => ....
[dir2/file2] => ....
)
我怎么能这样做?我尝试过很多错误的循环和递归函数,但我仍然不知道该怎么做。
答案 0 :(得分:2)
一个简单的递归解决方案是:
function toPathArray($nestedArr) {
$res = array();
foreach ($nestedArr as $key => $val) {
if (is_array($val)) {
foreach (toPathArray($val) as $innerKey => $innerVal) {
$res["$key/$innerKey"] = $innerVal;
}
} else {
$res[$key] = $val;
}
}
return $res;
}