lithium\util\Set::flatten()

public static method

Collapses a multi-dimensional array into a single dimension, using a delimited array path for each array element's key, i.e. array(array('Foo' => array('Bar' => 'Far'))) becomes array('0.Foo.Bar' => 'Far').

Parameters

  • array $data

    array to flatten

  • array $options

    Available options are:

    • 'separator': String to separate array keys in path (defaults to '.').
    • 'path': Starting point (defaults to null).

Returns

array

Source

	public static function flatten($data, array $options = array()) {
		$defaults = array('separator' => '.', 'path' => null);
		$options += $defaults;
		$result = array();

		if ($options['path'] !== null) {
			$options['path'] .= $options['separator'];
		}
		foreach ($data as $key => $val) {
			if (!is_array($val)) {
				$result[$options['path'] . $key] = $val;
				continue;
			}
			$opts = array('separator' => $options['separator'], 'path' => $options['path'] . $key);
			$result += (array) static::flatten($val, $opts);
		}
		return $result;
	}