在PHP中,array_walk() 和 array_map()两个函数都可以实现对数组中每个值的修改,比如本例就是将数组中所有的值,由UTF-8编码转成GBK编码。
当然,除了这两个函数,也可以用 foreach 遍历数组实现,不过,相比于直接用 PHP 的内部函数,显然效率更低并且不够优雅。
array_wark() 实现方式如下:
function array2gbk($array) { array_walk($array, function(&$value) { $value = iconv('utf-8', 'gbk', $value); }); return $array; }
array_map() 实现方式如下:
function array2gbk($array) { $array = array_map(function($value){ return iconv('utf-8', 'gbk', $value); }, $array); return $array; }
由此也可以看出这两个函数的共性和区别:
这两种方式都可以实现同样的功能,选择其一即可。