Добавьте префикс к каждому элементу массива PHP

У меня есть массив чисел PHP, который я бы хотел префикс с минусом (-). Я думаю, что использование взрыва и взрыва было бы возможно, но мои знания php на самом деле не могут это сделать. Любая помощь будет оценена по достоинству.

По сути, я хотел бы перейти от этого:

$array = [1, 2, 3, 4, 5]; 

к этому:

 $array = [-1, -2, -3, -4, -5]; 

Есть идеи?

Solutions Collecting From Web of "Добавьте префикс к каждому элементу массива PHP"

просто

 foreach ($array as &$value) { $value *= (-1); } unset($value); 

если массив не является строкой:

 foreach ($array as &$value) { $value = '-'.$value; } unset($value); 

Элегантный способ префикса значений массива (PHP 5.3+):

 $prefixed_array = preg_filter('/^/', 'prefix_', $array); 

Кроме того, это более чем в три раза быстрее, чем foreach .

В этом случае ответ Рохита, вероятно, лучший, но функции массива PHP могут быть очень полезными в более сложных ситуациях.

Вы можете использовать array_walk() для выполнения функции для каждого элемента массива, изменяющего существующий массив. array_map() делает почти то же самое, но возвращает новый массив вместо изменения существующего, так как похоже, что вы хотите продолжать использовать тот же массив, вы должны использовать array_walk() .

Чтобы работать непосредственно с элементами массива с помощью array_walk() , передайте элементы массива по ссылке ( 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