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