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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-06 20:47:432400Durchsuche

比如原数组是

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

我需要得到的结果

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

用内置函数如何实现?

回复内容:

比如原数组是

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

我需要得到的结果

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

用内置函数如何实现?

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>

输出结果为:

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

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>

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

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

    var_dump($a);
</code></code>

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

PHP没有这样的内置函数。

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn