src/Utility/Utility.php
protected static function _arrayFlatten($a, $f = []) {
		if (!$a) {
			return [];
		}
		foreach ($a as $k => $v) {
			if (is_array($v)) {
				$f = static::_arrayFlatten($v, $f);
			} else {
				$f[$k] = $v;
			}
		}
		return $f;
	}
protected static function _arrayFlatten($a, $f = []) {
		if (!$a) {
			return [];
		}
		foreach ($a as $k => $v) {
			if (is_array($v)) {
				$f = static::_arrayFlatten($v, $f);
			} else {
				$f[$k] = $v;
			}
		}
		return $f;
	}
protected static function _arrayFlatten ( $ a , $ f = [ ] ) { if ( ! $ a ) { return [ ] ; } foreach ( $ a as $ k => $ v ) { if ( is_array ( $ v ) ) { $ f = static :: _arrayFlatten ( $ v , $ f ) ; } else { $ f [ $ k ] = $ v ; } } return $ f ; }
Force-flattens an array and preserves the keys.

Careful with this method. It can lose information.
The keys will not be changed, thus possibly overwrite each other.

//TODO: check if it can be replace by Hash::flatten() or Utility::flatten().

@param array $a
@param array $f
@return array
Force - flattens an array and preserves the keys .