向数组添加特定值的最佳方法是什么? 有点难以解释,但这应该有所帮助:
<?php
$myarray = array("test", "test2", "test3");
$myarray = array_addstuff($myarray, " ");
var_dump($myarray);
?>
哪个输出:
array(3) {
[0]=>
string(5) " test"
[1]=>
string(6) " test2"
[2]=>
string(6) " test3"
}
你可以这样做:
function array_addstuff($a, $i) {
foreach ($a as &$e)
$e = $i . $e;
return $a;
}
但我想知道是否有更快的方法,或者这个功能是否内置。
答案 0 :(得分:36)
如果您使用的是PHP版本&gt; = 5.3:
$array = array('a', 'b', 'c');
array_walk($array, function(&$value, $key) { $value .= 'd'; } );
答案 1 :(得分:18)
$array = array('a', 'b', 'c');
$array = array_map(function($value) { return ' '.$value; }, $array);
答案 2 :(得分:6)
下面的代码将添加&#34;前缀_&#34;作为每个元素值的前缀:
$myarray = array("test", "test2", "test3");
$prefixed_array = preg_filter('/^/', 'prefix_', $myarray);
输出将是:
Array ( [0] => prefix_test [1] => prefix_test2 [2] => prefix_test3 )
答案 3 :(得分:3)
使用array_walk。在PHP 5.3中,您可以使用匿名来定义该回调。因为要修改实际数组,所以必须将回调的第一个参数指定为pass-by-reference。