0, 'name' => 'A'], ['id' => 1, 'name' => 'a', 'pid' => 0], ['id' => 2, 'name' => 'b', 'pid' => 1], ['id' => 3, 'name' => 'c', 'pid' => 1], ['id' => 4, 'name' => 'd', 'pid' => 5], ['id' => 5, 'name' => 'e', 'pid' => 0], ['id' => 6, 'name' => 'e', 'pid' => 4], ]; function m_tree($arr, $pid = 0) { $tree = []; foreach ($arr as $t) { if ($t['id'] == $pid) { $tree = $t; } } foreach ($arr as $child) { if (isset($child['pid']) && $child['pid'] == $tree['id']) { $tree['child'][] = $child; } } foreach ($tree as $k1 => $v1) { if (is_array($v1)) { foreach ($v1 as $k2 => $v2) { $tree['child'][$k2] = m_tree($arr, $v2['id']); } } } return $tree; } echo '
';
print_r(m_tree($test_data));
echo '
'; die; function tree($directory) { $mydir = dir($directory); echo "\n"; $mydir->close(); } function getChmod($filepath) { return substr(base_convert(@fileperms($filepath), 10, 8), -4); } $dirs = tree('/'); var_dump($dirs); var_dump(is_writable('/test')); $perms = getChmod('/test/'); var_dump(fileperms('/test')); var_dump(scandir('/')); var_dump($_SERVER['DOCUMENT_ROOT']); chdir('d:/www'); var_dump(scandir('/')); echo getcwd();