С ключами сложнее получится. Придется новый массив (так лучше) создавать, а не это изменять по ссылке.
Для этого лучше, наверно, будет функция Joker'а, переписанная таким образом примерно:
PHP |
... foreach($data as $key => $value) { if ( is_array($data[$key]) ) { encoding($data[$key],$in,$to); } else { $dataOut[encoding($key,$in,$to)] = iconv($in,$to,$value); } } ... |
Писал прямо здесь, поэтому не тестил, но таким образом должно работать.
А другой массив лучше, потому что если писать новые ключи в старый, то в результате получится мешанина из старых и новых ключей.
Можно сразу удалять старый ключ, в принципе, таким образом:
PHP |
$data[encoding($key,$in,$to)] = iconv($in,$to,$value); $data[$key] = null; |