una suma recorrer multidimensional matriz matrices manejo imprimir hacer eliminar elementos elemento dibujar como array agregar 3x3 php arrays explode prefix implode

suma - Agregue un prefijo a cada elemento de una matriz PHP



recorrer un array multidimensional php (5)

Algo como esto haría:

array_map(function($val) { return -$val;} , $array)

Tengo una matriz de números de PHP, que me gustaría prefijar con un signo menos (-). Creo que a través del uso de explotar e implosionar sería posible, pero mi conocimiento de php no es posible hacerlo. Cualquier ayuda sería apreciada.

Esencialmente me gustaría pasar de esto:

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

a esto:

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

¿Algunas ideas?


En este caso, la respuesta de Rohit es probablemente la mejor, pero las funciones de matriz de PHP pueden ser muy útiles en situaciones más complejas.

Puede usar array_walk() para realizar una función en cada elemento de una matriz, alterando la matriz existente. array_map() hace casi lo mismo, pero devuelve una nueva matriz en lugar de modificar la existente, ya que parece que desea seguir utilizando la misma matriz, debe usar array_walk() .

Para trabajar directamente en los elementos de la matriz con array_walk() , pase los elementos de la matriz por referencia ( function(&$item) ).

Desde PHP 5.3 puedes usar la función anónima en array_walk:

// PHP 5.3 and beyond! array_walk($array, function(&$item) { $item *= -1; }); // or $item = ''-''.$item;

Ejemplo de trabajo

Si php 5.3 es un pantalón demasiado elegante para ti, solo usa createfunction() :

// If you don''t have PHP 5.3 array_walk($array,create_function(''&$it'',''$it *= -1;'')); //or $it = ''-''.$it;

Ejemplo de trabajo


Sencillo

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

a menos que la matriz sea una cadena:

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


Una forma elegante de prefijar valores de matriz (PHP 5.3+):

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

Además, esto es más de tres veces más rápido que un foreach .


$array = [1, 2, 3, 4, 5]; $array=explode(",", ("-".implode(",-", $array))); //now the $array is your required array