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
