01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | public function array_flatten( $a , $f = array ()) { if (! $a || ! is_array ( $a )) { return '' ; } if ( is_array ( $a ) && count ( $a )) { foreach ( $a as $k => $v ) { if ( is_array ( $v )) { $f = mslib_befe::array_flatten( $v , $f ); } else { $f [ $k ] = $v ; } } } return $f ; } |
If you want to keep the prefix of the parent key then use:
function array_flatten($array, $prevKey = '') { if (!is_array($array)) { return FALSE; } $result = array(); foreach ($array as $key => $value) { if (is_array($value)) { $result = array_merge($result, self::array_flatten($value, $key)); } else { if ($prevKey) { $keyName=$prevKey . '[' . $key.']'; } else { $keyName=$key; } $result[$keyName] = $value; } } return $result; }