Home > Backend Development > PHP Tutorial > 用php内置函数如何实现在php数组的值前面批量添加一个固定字符串

用php内置函数如何实现在php数组的值前面批量添加一个固定字符串

WBOY
Release: 2016-06-06 20:47:43
Original
2376 people have browsed it

比如原数组是

<code>array('1','2','3','4');
</code>
Copy after login
Copy after login

我需要得到的结果

<code>array('aaa1','aaa2','aaa3','aaa4');
</code>
Copy after login
Copy after login

用内置函数如何实现?

回复内容:

比如原数组是

<code>array('1','2','3','4');
</code>
Copy after login
Copy after login

我需要得到的结果

<code>array('aaa1','aaa2','aaa3','aaa4');
</code>
Copy after login
Copy after login

用内置函数如何实现?

array_walk() + str_pad() 也可以实现:

<code><?php $ar = array('1','2','3','4');

array_walk(
    $ar,
    function (&$s, $k, $prefix = 'aaa') {
        $s = str_pad($s, strlen($prefix) + strlen($s), $prefix, STR_PAD_LEFT);
    }
);

var_dump($ar);
</code></code>
Copy after login

输出结果为:

<code>array(4) {
  [0]=>
  string(4) "aaa1"
  [1]=>
  string(4) "aaa2"
  [2]=>
  string(4) "aaa3"
  [3]=>
  string(4) "aaa4"
}
</code>
Copy after login

http://ideone.com/nI0IgC

如果不使用闭包效率会更高,但 str_pad() 需要带多个参数,而 array_walk 只能传递一个参数,
所以目前只能这样了。

嗯,直接是没有的,不过可以有简便写法什么的

<code><?php $arr = array('1','2','3','4');
    $arr = array_map(create_function('$item', 'return "aaa$item";'), $arr);
    print_r($arr);
?>
</code>
Copy after login

<code><?php $a = array(1, 2, 3, 4);

    array_walk(
        $a, 
        function(&$value, $key, $prefix){$value = $prefix.$value;}, 
        'aaa'
    );

    var_dump($a);
</code></code>
Copy after login

@怡红公子 @Fwolf 可以看下我实现的这个版本,可以省去str_pad(), 完全用array_walk()实现,array_walk()不止能传递一个参数,可以看下手册。

PHP没有这样的内置函数。

自己写一个PHP版的吧,不复杂。

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template