例如有一个多维数组:
- array(
- array(
- array(1,3,4),
- array(
- array(
- 1,2,3
- )
- )
- ),
- array(
- array(1,2),
- array(1)
- )
- )
这个数组的深度就是5.那么如何快速的确定一个数组深度.
初始方法
- <?php
- function countdim($array) {
- static $dimcount = 1;
- if (is_array(reset($array))) {
- $dimcount++;
- $return = countdim(reset($array));
- } else {
- $return = $dimcount;
- }
- return $return;
- }
-
- $array = array( array( array(array("5", "6"), "7", "8")),array( array(array("5", "6"), "7", "8")), "9", "10", array("11"), array());
-
- echo countdim($array);
- ?>
优化版方法
- <?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;
- }
-
- $array = array( array("11"), array(),array( array(array("5", "6"), "7", "8")),array( array(array("5", "6"), "7", "8")), "9", "10");
- echo array_depth($array);
- ?>