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 (!is_null($options['path'])) {
			$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;
	}