Skip to content

Instantly share code, notes, and snippets.

@stubbetje
Created June 2, 2010 08:28
Show Gist options
  • Save stubbetje/422106 to your computer and use it in GitHub Desktop.
Save stubbetje/422106 to your computer and use it in GitHub Desktop.
flatten an multidimensional array and combine keys with separator
<?php
$flatten = function( $array , $keySeparator = '.' ) use ( & $flatten )
{
if( is_array( $array ) ) {
foreach( $array as $name => $value ) {
$f = $flatten( $value , $keySeparator );
if( is_array( $f ) ) {
foreach( $f as $key => $val ) {
$array[ $name . $keySeparator . $key ] = $val;
}
unset( $array[ $name ] );
}
}
}
return $array;
};
@tkthundr
Copy link

public static function array_flatten( $array , $keySeparator = '__' )
    {
        if( is_array( $array ) ) {
            foreach( $array as $name => $value ) {
                $f = self::array_flatten( $value , $keySeparator );
                if( is_array( $f ) ) {
                    foreach( $f as $key => $val ) {
                        $array[ $name . $keySeparator . $key ] = $val;
                    }
                    unset( $array[ $name ] );
                }
            }
        }
        return $array;
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment