Counts the dimensions of an array. If `$all` is set to `false` (which is the default) it will
only consider the dimension of the first element in the array.
Parameters
- array $data Array to count dimensions on.
- array $options
Returns
integer The number of dimensions in `$array`.Source
public static function depth($data, array $options = array()) {
$defaults = array('all' => false, 'count' => 0);
$options += $defaults;
if (!$data) {
return 0;
}
if (!$options['all']) {
return (is_array(reset($data))) ? static::depth(reset($data)) + 1 : 1;
}
$depth = array($options['count']);
if (is_array($data) && reset($data) !== false) {
foreach ($data as $value) {
$depth[] = static::depth($value, array(
'all' => $options['all'],
'count' => $options['count'] + 1
));
}
}
return max($depth);
}