PHP的array_walk和array_map函数实现数组值UTF-8转GBK编码

Posted 壁虎漫步.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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返回。

这两种方式都可以实现同样的功能,选择其一即可。

以上是关于PHP的array_walk和array_map函数实现数组值UTF-8转GBK编码的主要内容,如果未能解决你的问题,请参考以下文章

PHP:数组操作函数array_walk()和array_map()

PHP:数组操作函数array_walk()和array_map()

PHP:数组操作函数array_walk()和array_map()

PHP 合并两个二维数组 array_map 和 array_walk 的区别

php中array_map和array_walk的使用对比

php array_map与array_walk使用对比