配列をmb_convert_encodingするプログラム

vectorさんのブログ | 配列の文字コードを全部かえる関数 ::

http://vector.jugem.jp/?eid=56


vectorさんが書かれてたプログラムに一部ミスがあったので修正。
利用させていただきました。ありがとうございます。
しかしでも、すごいなぁ。


でもエンコードをautoで判断するのは危ないと思うので、
これでいいと思います。

/**
 * mb_convert_encoding()の拡張
 *
 * @param  mixed  $target       arrayかstring
 * @param  string $toEncoding   エンコード先
 * @param  string $fromEncoding エンコード元(default:null)
 * @return mixed  arrayが来たらarrayを、stringが来たらstringを
 */
function _mbConvertEncodingEx($target, $toEncoding, 
$fromEncoding = null)
{
  if (is_array($target)) {
    foreach ($target as $key => $val) {
      if (is_null($fromEncoding)) {
        $fromEncoding = mb_detect_encoding($val);
      }
      $target[$key] = $this->_mbConvertEncodingEx($val,
 $toEncoding, $fromEncoding);
    }
  } else {
    if  (is_null($fromEncoding)) {
      $fromEncoding = mb_detect_encoding($target);
    }
    $target = mb_convert_encoding($target, $toEncoding, 
$fromEncoding);
  }
  return $target;
}