287 votes

Convertir les valeurs d'un tableau de chaînes de caractères en int ?

Le code suivant :

$string = "1,2,3"
$ids = explode(',', $string);
var_dump($ids);

Retourne le tableau :

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}

J'ai besoin que les valeurs soient de type int au lieu du type string . Y a-t-il une meilleure façon de procéder que de parcourir le tableau en boucle avec la fonction foreach et en convertissant chaque string a int ?

1 votes

Pour les chercheurs qui recherchent une solution adaptée aux données multidimensionnelles, veuillez consulter cette question similaire : stackoverflow.com/questions/27147105/

9voto

MyGeertRo Points 111

Une autre méthode plus courte pourrait être utilisée :

$r = explode(',', $s);
foreach ($r as &$i) $i = (int) $i;

Elle a les mêmes performances que la méthode 3.

7voto

Theva Points 27

Ma solution est de couler chaque valeur avec l'aide de la fonction callback :

$ids = array_map( function($value) { return (int)$value; }, $ids )

6voto

Baik Ho Points 2760

Je ne sais pas si c'est plus rapide, mais retourner un tableau deux fois transformera les chaînes numériques en nombres entiers :

$string = "1,2,3,bla";
$ids = array_flip(array_flip(explode(',', $string)));
var_dump($ids);

Important : Ne l'utilisez pas si vous avez affaire à des valeurs en double !

5voto

star18bit Points 1004

Si vous avez un tableau comme :

$runners = ["1","2","3","4"];

Et si vous voulez les convertir en nombres entiers et les garder dans un tableau, ce qui suit devrait faire l'affaire :

$newArray = array_map( create_function('$value', 'return (int)$value;'),
            $runners);

4voto

Julien Points 189

Style PHP 7.4 :

$ids = array_map(fn(string $x): int => (int) $x, explode(',', $string));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X