Иногда бывает так, что мы получаем массив, в котором элементы имеют кодировку, которая нам без надобности. Необходимо преобразовать все элементы массива в нужную нам кодировку. Когда массив одномерный - это не составляет труда. Но когда мы имеем многомерный массив, могут возникнуть трудности - нам ведь надо опускаться на неопределенную глубину. Следующая маленькая функция решит эту тривиальную задачу:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

function iconvArray($inputArray,$newEncoding){
  $outputArray=array();
    if ($newEncoding!=''){
      if (!empty($inputArray)){
        foreach ($inputArray as $element){
          if (!is_array($element)){
            $element=iconv(mb_detect_encoding($element),
              $newEncoding,$element);
          } else {
            $element=iconvArray($element);
          }
          $outputArray[]=$element;
        }
      }
    }
  return $outputArray;
}

Просто и… рекурсивно ;)