PHP: Adding prefix strings to array values
What is the best way to add a specific value or values to an array? Kinda hard to explain, but this should help:
<?php
$myarray = array("test", "test2", "test3");
$myarray = array_addstuff($myarray, " ");
var_dump($myarray);
?>
Which outputs:
array(3) {
[0]=>
string(5) " test"
[1]=>
string(6) " test2"
开发者_如何学C[2]=>
string(6) " test3"
}
You could do so like this:
function array_addstuff($a, $i) {
foreach ($a as &$e)
$e = $i . $e;
return $a;
}
But I'm wondering if there's a faster way, or if this function is built-in.
In the case that you're using a PHP version >= 5.3:
$array = array('a', 'b', 'c');
array_walk($array, function(&$value, $key) { $value .= 'd'; } );
Use array_map()
$array = array('a', 'b', 'c');
$array = array_map(function($value) { return ' '.$value; }, $array);
Below code will add "prefix_" as a prefix to each element value:
$myarray = array("test", "test2", "test3");
$prefixed_array = preg_filter('/^/', 'prefix_', $myarray);
Output will be:
Array ( [0] => prefix_test [1] => prefix_test2 [2] => prefix_test3 )
Use array_walk. In PHP 5.3 you can use an anonymous to define that callback. Because you want to modify the actual array, you have to specify the first parameter of the callback as pass-by-reference.
精彩评论