rodney rehm: Rekursiven Array als Code darstellen

Beitrag lesen

Haben will ich aber das:
$cfg['abc']['dfkle'] = "Wert";
$cfg['abc']['ilk'] = "Wert";
$cfg['abc']['tiouid'] = "Wert";
$cfg['defg']['roitzf'] = "Wert";
$cfg['defg']['dflfgzhj'] = "Wert";
$cfg['defg']['dflfgzhj']['eroiut'] = "Wert";
$cfg['hijklm']['erior'] = "Wert";
$cfg['hijklm']['dfkf'] = "Wert";
$cfg['hijklm']['dfkf']['rotfklgf'] = "Wert";

das wirst du aber nie bekommen...

$cfg['defg']['dflfgzhj'] = "Wert";
$cfg['defg']['dflfgzhj']['eroiut'] = "Wert";

$cfg['defg']['dflfgzhj'] weist du hier einmal nen string, und danach ein array zu... print_r($cfg); verrät dir, dass es beim array bleibt...

habe hier mal schnell was zusammen gebastelt.. (bemerke, dass ich die beiden keys geändert habe, die die vorherige string-zuweisung überschrieben haben)

$cfg['abc']['dfkle'] = "Wert";
$cfg['abc']['ilk'] = "Wert";
$cfg['abc']['tiouid'] = "Wert";
$cfg['defg']['roitzf'] = "Wert";
$cfg['defg']['dflfgzhj'] = "Wert";
$cfg['defg']['dflsdhj']['eroiut'] = "Wert";
$cfg['hijklm']['erior'] = "Wert";
$cfg['hijklm']['dfkf'] = "Wert";
$cfg['hijklm']['dfkfsd']['rotfklgf'] = "Wert";

function makeReadableArray($array,$pre='',$str=''){
if(count($array)==0) return '';

foreach($array AS $key => $val){
  if(is_array($val)) $str .= makeReadableArray($val,$pre.'[''.$key.'']');
  else $str .= $pre.'[''.$key.'']'.'="'.$val.'";'."\n";
}
return $str;
}

echo makeReadableArray($cfg,'$cfg');