PHP的array_walk和array_map函數實現數組值UTF-8轉GBK編碼
阿新 • • 發佈:2017-11-19
for php false 2gb fun foreach () clas 內部
在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;
}
由此也可以看出這兩個函數的共性和區別:
- 傳入這兩個函數的 $value,就是數組中的單一個元素。
array_walk()
僅返回true
或者false
,array_map()
返回處理後的數組;- 要得到處理後的元素值,
array_walk()
需要在傳入參數值加&
array_map()
則需要return
返回。
這兩種方式都可以實現同樣的功能,選擇其一即可。
PHP的array_walk和array_map函數實現數組值UTF-8轉GBK編碼