Легкие вещи:
эта функция будет принимать целевой $ hash, а $ replacements также является хешем, содержащим newkey => ассоциации старых ключей .
Эта функция сохранит исходный порядок , но может быть проблематичной для очень больших (например, свыше 10 тыс. Записей) массивов, касающихся производительности и памяти .
function keyRename(array $hash, array $replacements) {
$new=array();
foreach($hash as $k=>$v)
{
if($ok=array_search($k,$replacements))
$k=$ok;
$new[$k]=$v;
}
return $new;
}
эта альтернативная функция будет делать то же самое, с гораздо лучшей производительностью и использованием памяти, за счет потери исходного порядка (что не должно быть проблемой, поскольку она имеет хеш-таблицу!)
function keyRename(array $hash, array $replacements) {
foreach($hash as $k=>$v)
if($ok=array_search($k,$replacements))
{
$hash[$ok]=$v;
unset($hash[$k]);
}
return $hash;
}