PHP:为数组值添加前缀字符串

ske*_*gse 19 php arrays

向数组添加特定值的最佳方法是什么?有点难以解释,但这应该有所帮助:

<?php
$myarray = array("test", "test2", "test3");
$myarray = array_addstuff($myarray, " ");
var_dump($myarray);
?>
Run Code Online (Sandbox Code Playgroud)

哪个输出:

array(3) {
  [0]=>
  string(5) " test"
  [1]=>
  string(6) " test2"
  [2]=>
  string(6) " test3"
}
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

function array_addstuff($a, $i) {
    foreach ($a as &$e)
        $e = $i . $e;
    return $a;
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更快的方法,或者这个功能是否是内置的.

And*_*dre 37

如果您使用的是PHP版本> = 5.3:

$array = array('a', 'b', 'c');
array_walk($array, function(&$value, $key) { $value .= 'd'; } );
Run Code Online (Sandbox Code Playgroud)


shf*_*hfx 20

使用array_map()

$array = array('a', 'b', 'c');
$array = array_map(function($value) { return ' '.$value; }, $array);
Run Code Online (Sandbox Code Playgroud)


小智 8

下面的代码将添加"prefix_"作为每个元素值的前缀:

$myarray = array("test", "test2", "test3");    
$prefixed_array = preg_filter('/^/', 'prefix_', $myarray);
Run Code Online (Sandbox Code Playgroud)

输出将是:

Array ( [0] => prefix_test [1] => prefix_test2 [2] => prefix_test3 ) 
Run Code Online (Sandbox Code Playgroud)

  • 请添加一些解释.由于您使用的变量名称和文字与问题无关,因此您可以做的最少. (2认同)