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;
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;
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