PHP的array_walk和array_map函數實現數組值UTF-8轉GBK編碼


在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; }

由此也可以看出這兩個函數的共性和區別:

  1. 傳入這兩個函數的 $value,就是數組中的單一個元素。
  2. array_walk() 僅返回true或者falsearray_map() 返回處理后的數組;
  3. 要得到處理后的元素值,array_walk() 需要在傳入參數值加 & 引用符號,array_map() 則需要return返回。

這兩種方式都可以實現同樣的功能,選擇其一即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM