Search code examples
phparraysassociative-array

Is there a way to find out how "deep" a PHP array is?


A PHP array can have arrays for its elements. And those arrays can have arrays and so on and so forth. Is there a way to find out the maximum nesting that exists in a PHP array? An example would be a function that returns 1 if the initial array does not have arrays as elements, 2 if at least one element is an array, and so on.


Solution

  • This should do it:

    <?php
    
    function array_depth(array $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;
    }
    
    ?>
    

    Edit: Tested it very quickly and it appears to work.