为每个PHP数组添加一个前缀
我有一个PHP数组,我想用一个减号( – )作为前缀。 我想通过使用爆炸和内爆这将是可能的,但我的知识的PHP是不可能的实际上做到这一点。 任何帮助,将不胜感激。
基本上我想从这里走出去:
$array = [1, 2, 3, 4, 5]; 对此:
 $array = [-1, -2, -3, -4, -5]; 
有任何想法吗?
简单
 foreach ($array as &$value) { $value *= (-1); } unset($value); 
除非数组是一个string:
 foreach ($array as &$value) { $value = '-'.$value; } unset($value); 
一个优雅的方式前缀数组值(PHP 5.3 +):
 $prefixed_array = preg_filter('/^/', 'prefix_', $array); 
 另外,这比foreach快三倍以上。 
在这种情况下, Rohit的答案可能是最好的,但在更复杂的情况下, PHP数组函数可能非常有用。
 您可以使用array_walk()在数组的每个元素上执行更改现有数组的函数。  array_map()做几乎相同的事情,但它返回一个新的数组,而不是修改现有的,因为它看起来像你想继续使用相同的数组,你应该使用array_walk() 。 
 要使用array_walk()直接处理数组的元素,请通过引用( function(&$item) )传递数组的function(&$item) 。 
由于PHP 5.3可以在array_walk中使用匿名函数:
 // PHP 5.3 and beyond! array_walk($array, function(&$item) { $item *= -1; }); // or $item = '-'.$item; 
工作示例
 如果php 5.3对你来说有些太花哨,那就用createfunction() : 
 // If you don't have PHP 5.3 array_walk($array,create_function('&$it','$it *= -1;')); //or $it = '-'.$it; 
工作示例
这样的事情会做:
 array_map(function($val) { return -$val;} , $array) 
 $array = "1, 2, 3, 4"; $array = explode( ',', $array ); foreach ($array as &$value){ $value = '-' . trim($value); } $array = implode(', ', $array); //output "-1, -2, -3, -4" 
 $array = [1, 2, 3, 4, 5]; $array=explode(",", ("-".implode(",-", $array))); //now the $array is your required array