======[PHP] array_replace_keys_rekursive()======
Auch diese Funktion ist das Resultat einer Hilfestellung im Tutorials.de-Forum. Die Frage war, wie man einfache in @ im Key eines Arrays entfernen kann. Dieses @ kam aus einem XML-File und gab Probleme beim weitergeben an Smarty.
Diese Callback-Funktion wird gleich aufgerufen wie str_replace. Anstelle des Textes wird das Array übergeben.
===== Code =====
$key){
//Falls das item ein array ist, darauf ebenfalls diese Funktion anwenden
$function = __FUNCTION__;
if(is_array($array[$key])) $array[$key] = $function($search, $replace, $array[$key]);
$keys[$index] = str_replace($search, $replace, $key);
}
//Den Array wieder zusammensetzen
return array_combine($keys, $array);
}
?>
Testaufruf
'A',
'b' => 'B',
'@c' => array(
'@d' => 'D',
'e'=>'E',
'@f'=>array()
)
);
print_r(array_replace_keys_rekursive('@', '', $array));
?>
Ausgabe
Array
(
[a] => A
[b] => B
[c] => Array
(
[d] => D
[e] => E
[f] => Array
(
)
)
)
{{tag>PHP Function Array}}