Ajouter un préfixe à chaque élément d'un tableau PHP
j'ai un tableau PHP de nombres, que je voudrais préfixer avec un moins (-). Je pense que par l'utilisation d'explode et implose il serait possible, mais ma connaissance de php n'est pas possible de le faire réellement. Toute aide serait appréciée.
essentiellement, je voudrais partir de ceci:
$array = [1, 2, 3, 4, 5];
à ceci:
$array = [-1, -2, -3, -4, -5];
des idées?
6 réponses
Simple
foreach ($array as &$value) {
$value *= (-1);
}
unset($value);
sauf si le tableau est une chaîne de caractères:
foreach ($array as &$value) {
$value = '-'.$value;
}
unset($value);
une façon élégante de préfixer les valeurs des tableaux (PHP 5.3+):
$prefixed_array = preg_filter('/^/', 'prefix_', $array);
en Outre, c'est plus de trois fois plus rapide qu'un foreach
.
dans ce cas, réponse de Rohit est probablement le meilleur, mais le fonctions PHP array peut être très utile dans des situations plus complexes.
Vous pouvez utiliser array_walk()
pour effectuer une fonction sur chaque élément d'un tableau modifier le tableau existant. array_map()
fait presque la même chose, mais il renvoie un nouveau tableau au lieu de modifier le tableau existant, puisque il semble que vous voulez continuer à utiliser le même tableau, vous devriez utiliser array_walk()
.
De travailler directement sur les éléments du tableau avec array_walk()
, passer les éléments du tableau par référence ( function(&$item)
).
depuis php 5.3 vous pouvez utiliser la fonction anonyme dans array_walk:
// PHP 5.3 and beyond!
array_walk($array, function(&$item) { $item *= -1; }); // or $item = '-'.$item;
si php 5.3 est un peu trop chic pour vous, il suffit d'utiliser createfunction()
:
// If you don't have PHP 5.3
array_walk($array,create_function('&$it','$it *= -1;')); //or $it = '-'.$it;
quelque chose comme ça ferait:
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