开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜