Php:将字符串连接到所有数组项中

kub*_*dan 8 php arrays

我有这个 PHP片段:

<?php
  $colors = array('red','green','blue');
  foreach ($colors as &$item)
  {
    $item = 'color-'.$item;
  }
  print_r($colors);
?>  
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
  [0] => color-red
  [1] => color-green
  [2] => color-blue
)
Run Code Online (Sandbox Code Playgroud)

这是更简单的解决方案吗?

(某些数组php函数那样array_insert_before_all_items($colors,"color-"))?

谢谢

Ada*_*dam 13

方法array_walk将允许您通过回调"访问"数组中的每个项目.使用php 5.3,您甚至可以使用匿名函数

Pre PHP 5.3版本:

function carPrefix(&$value,$key) {
  $value="car-$value";
}
array_walk($colors,"carPrefix");
print_r($colors);
Run Code Online (Sandbox Code Playgroud)

较新的匿名功能版本:

array_walk($colors, function (&$value, $key) {
   $value="car-$value";
});
print_r($colors);
Run Code Online (Sandbox Code Playgroud)


ada*_*amj 6

使用替代示例array_map: http: //php.net/manual/en/function.array-map.php

PHP:

$colors = array('red','green','blue');

$result = array_map(function($color) {
    return "color-$color";
}, $colors);
Run Code Online (Sandbox Code Playgroud)

输出 ($result):

array(
    'color-red',
    'color-green',
    'color-blue'
)
Run Code Online (Sandbox Code Playgroud)