<?php

/**
* Flattens an array from a = array( b => c, d => array(e)) notation to
* a[b] = c;
* a[d][0] = e;
*
* @author Joscha Feth <joscha@feth.com>
*/
function array_flatten($array,$prefix '') {
    
$ret '';
    foreach(
$array as $key => $value) {
        if(
is_numeric($key)) {
            
$addkey "[$key]";
        } else {
            
$addkey "['$key']";
        }
        if(
is_array($value)) {

            
$ret .= array_flatten($value,$prefix.$addkey);
        } else {
            
$ret .= $prefix.$addkey." = ";
            
            switch(
gettype($value)) {
                case 
"string":
                    
$ret .= "'$value'";
                    break;    
                case 
"integer":
                case 
"double":
                    
$ret .= $value;
                    break;                    
                case 
"boolean":
                    if(
$value) {
                        
$ret .= 'true';
                    } else {
                        
$ret .= 'false';
                    }
                    break;
                case 
"NULL":
                    
$ret .= "NULL";
                    break;
            }
            
            
$ret .= ";\n";
        }
    }
    return 
$ret;
}

//~ example

$arr = array(
            
'test'     => 'Test',
            
0        => 0,
            
1        => array(null,true,false,'0',1.234,1e2),
            
2        => (double) '1.234',
            
3        => '1'
            
);

header('Content-Type: text/plain');

var_export($arr);

echo 
str_pad("\n",100,'-')."\n";

echo 
array_flatten($arr,'$arr');




?>