Home  >  Q&A  >  body text

php - 求一个高效简单的多维数组字符编码转换函数

function arrayCv($data) {
		if (is_array($data)) {
			
			foreach ($data as $key => $val) {
				if (!is_array($val)) {
					$arr[$key] = iconv('UTF-8', 'GBK',  $val);
				} else {

					$arr[$key] = arrayCv($val);
				}
			}
		} else {
			return iconv('UTF-8', 'GBK',  $data);
		}
		return $arr;

	}

现在是这个样的感觉不优雅,有用array_map, array_walk来实现的吗

黄舟黄舟2683 days ago622

reply all(3)I'll reply

  • 高洛峰

    高洛峰2017-04-10 14:25:39

    试试 array_walk_recursive 。

    reply
    0
  • PHPz

    PHPz2017-04-10 14:25:39

    function arrayCv($data) {
          if (is_array($data)) {
                foreach ($data as $key => $val) {
                     $arr[$key]=arrayCv($val);
               }
          } else {
                 return iconv('UTF-8', 'GBK',  $data);
          }
    }

    ==================================================

    function myConv(&$value,$key) 
    {
        $value=iconv('UTF-8', 'GBK',$value);
    }
    function arrayCv($data) {
        array_walk($data,"myConv");
    }

    reply
    0
  • 阿神

    阿神2017-04-10 14:25:39

    function ac($input = array()){
        return json_decode(iconv('UTF-8', 'GBK//IGNORE',  json_encode($input,JSON_UNESCAPED_UNICODE)),true);
    }

    不知道这个行不行。有人用php5.4么。测测。

    reply
    0
  • Cancelreply