<?php
function parse_paths_of_files($array)
{
foreach ($array as $item)
{
$current = &$result;
for ($i = 1, $max = count($parts); $i < $max; $i++) {
if (!isset($current[$parts[$i-1]])) {
$current[$parts[$i-1]] = array(); }
$current = &$current[$parts[$i-1]];
}
$current[] = $parts[$i-1];
}
return $result;
}
"dir1/dir2/dir3/file.ext",
"dir1/dir2/dir3/file2.ext",
"dir1/dir2/dir3/file3.ext",
"dir2/dir4/dir5/file.ext"
);
print_r(parse_paths_of_files
($test));
?>
PD9waHAKCmZ1bmN0aW9uIHBhcnNlX3BhdGhzX29mX2ZpbGVzKCRhcnJheSkKewogICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAKICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkaXRlbSkKICAgIHsKICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcvJywgJGl0ZW0pOwogICAgICAgICRjdXJyZW50ID0gJiRyZXN1bHQ7CiAgICAgICAgZm9yICgkaSA9IDEsICRtYXggPSBjb3VudCgkcGFydHMpOyAkaSA8ICRtYXg7ICRpKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoIWlzc2V0KCRjdXJyZW50WyRwYXJ0c1skaS0xXV0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgJGN1cnJlbnRbJHBhcnRzWyRpLTFdXSA9IGFycmF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGN1cnJlbnQgPSAmJGN1cnJlbnRbJHBhcnRzWyRpLTFdXTsKICAgICAgICB9CiAgICAgICAgJGN1cnJlbnRbXSA9ICRwYXJ0c1skaS0xXTsKICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7Cn0KCiR0ZXN0ID0gYXJyYXkoCiAgICAiZGlyMS9kaXIyL2RpcjMvZmlsZS5leHQiLAogICAgImRpcjEvZGlyMi9kaXIzL2ZpbGUyLmV4dCIsCiAgICAiZGlyMS9kaXIyL2RpcjMvZmlsZTMuZXh0IiwKICAgICJkaXIyL2RpcjQvZGlyNS9maWxlLmV4dCIKKTsKCnByaW50X3IocGFyc2VfcGF0aHNfb2ZfZmlsZXMoJHRlc3QpKTsKCj8+