当前位置:Gxlcms > PHP教程 > php中如何快速确定多维数组的深度?

php中如何快速确定多维数组的深度?

时间:2021-07-01 10:21:17 帮助过:16人阅读

例如有一个多维数组:

array( 
        array( 
            array(1,3,4), 
            array( 
                array( 
                    1,2,3 
                ) 
            ) 
        ), 
        array( 
            array(1,2), 
            array(1) 
        ) 
    )

这个数组的深度就是5,那么如何快速的确定一个数组深度.

解决方案1:

使用SPL中的Iterator,在RecursiveIteratorIterator 类中有个getDepth方法,获得深度

解决方案2:

解决方案3:

$arr = array(array( array(array(“5″, “6″), “7″, “8″)),2,array(array(array(“5″, “6″), “7″, “8″,array( “7″,“8″))),4); 
echo getArrDemp($arr); 
function getArrDemp($array){ 
    static $offset = 0; 
    $arr_str = serialize($array); 
    $num = substr_count($arr_str,'{'); 
    $result = array(); 
    for($i=0;$i<$num;$i++){ 
        $l_pos = strpos($arr_str, '{', $offset); 
        $temp_str = substr($arr_str,0,$l_pos); 
        $offset = $l_pos + 1; 
        $result[] = substr_count($temp_str,'{')-substr_count($temp_str,'}'); 
    } 
    array_multisort($result,SORT_DESC); 
    return ++$result[0]; 
}

解决方案4:递归实现

解决方案5:简单的计算深度函数:

 $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); 
?>

人气教程排行