我想将数组键加入到文件路径中,最后的值作为文件本身(下面的数组是“filetree”)
数组(深度,大小和键名是动态的):
[0] => bla.tif
[1] => quux.tif
[foo] => Array (
[bar] => Array (
[lorem] => Array (
[1] => ipsum.tif
[2] => doler.tif
)
)
)
[bar] => Array (
[qux] => Array (
[baz] => Array (
[1] => ipsum.tif
[2] => ufo.tif
)
)
)
这个结果没问题:
[0] => bla.tif
[1] => quux.tif
[2] => foo/bar/lorem/ipsum.tif
[3] => foo/bar/lorem/doler.tif
[4] => bar/qux/baz/ipsum.tif
[5] => bar/qux/baz/ufo.tif
也许还有一个纯PHP解决方案。我用array_map
尝试过,但结果不够好。
答案 0 :(得分:3)
我会使用递归函数来折叠这个数组。这是一个例子:
function collapse($path, $collapse, &$result)
{
foreach($collapse AS $key => $value)
{
if(is_array($value))
{
collapse($path . $key . "/", $value, $result);
continue;
}
$result[] = $path . $value;
}
}
以下是如何使用:
$result = array();
$toCollapse = /* The multidimentional array */;
collapse("", $toCollapse, $result);
和$result
将包含"内爆"阵列