我想找到这个数组的最大深度:
Array
(
[0] => Array
(
[children] => Array
(
[0] => Array
(
[children] => Array
(
[0] => Array
(
[children] =>
)
)
)
)
[children] => Array
(
[0] => Array
(
[children] =>
)
)
)
)
在这种情况下它是3,因为其中一个节点包含两个子节点。
这是我到目前为止所尝试的代码:
public static function nodeDepth($nodes) {
$node_depth = array();
foreach($nodes as $node) {
foreach($node['children'] as $childnode) {
$node_depth[] = nodeDepth($childnode)+1;
}
}
return max($node_depth);
}
答案 0 :(得分:3)
试试这个:
<?php
function array_depth($array) {
$max_depth = 1;
foreach ($array as $value) {
if (is_array($value)) {
$depth = array_depth($value) + 1;
if ($depth > $max_depth) {
$max_depth = $depth;
}
}
}
return $max_depth;
}
?>
在子节点的情况下,您需要将结果除以2。
格尔茨,
XpertEase