Obtener el número de niveles de un array

Código PHP

PHP – Array – Levels

Función recursiva que recorre todos los niveles de un array y nos devuelve su profundidad.

/**
 * Class HelperArray
 */
abstract class HelperArray
{

    /**
     * Devuelve el número de niveles de un array. Función recursiva.
     * Si el parámetro no es un array, devuelve cero.
     *
     * @param array $array
     * @param int   $niveles
     * @param array $array_actual
     *
     * @return int
     */
    public static function getLevels( $array, 
                                      $niveles = -1, 
                                      $array_actual = [] )
    {
        $niveles++;
  
        if (is_array($array)) {
  
            foreach ($array as $key => $value) {
                 $array_actual[] = self::getLevels($value, $niveles);
            }
        } else {
  
            return $niveles;
        }
  
        foreach ($array_actual as $value) {
            $niveles = $value > $niveles ? $value : $niveles;
        }
 
        return $niveles;
    }
}

Ejemplos

$tmp   = null;
$level = HelperArray::getLevels($tmp);
print_r($level); // 0

$tmp   = [1, 2, 3 => 'tres'];
$level = HelperArray::getLevels($tmp);
print_r($level); // 1

$tmp   = [1, 2, 3 => 'tres', ['a', 'b', 'c', ['d' => 4]]];
$level = HelperArray::getLevels($tmp);
print_r($level); // 3