lithium\util\Set::depth()

public static method

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);
	}