$a = '88';
$b = '88 8888';
echo (int)$a;
echo (int)$b;
comme prévu, les deux produisent 88. Quelqu'un sait s'il existe une chaîne à la fonction int qui fonctionnera pour la valeur de $ b et produira 888888? J'ai googlé un peu sans aucune chance.
Merci
Vous pouvez supprimer les espaces avant de lancer int
:
(int)str_replace(' ', '', $b);
En outre, si vous souhaitez supprimer d'autres séparateurs de chiffres couramment utilisés (tels que ,
), vous pouvez attribuer un tableau à la fonction (attention, dans certains pays, comme le mien par exemple, la virgule est utilisée pour la notation de fraction):
(int)str_replace(array(' ', ','), '', $b);
Si vous voulez ne laisser que des chiffres, utilisez preg_replace comme: (int) preg_replace ("/ [^\d] + /", "", $ b).
Remplacez les espaces, puis convertissez-les (à l'aide de la fonction intval ou par une conversion de type régulière)
intval(str_replace(" ", "", $b))
Que voulez-vous même que le résultat soit? 888888? Si c'est le cas, supprimez simplement les espaces avec str_replace
, puis convertissez-les.
Vous pouvez utiliser le str_replace
lorsque vous déclarez votre variable $ b comme ceci:
$b = str_replace(" ", "", '88 8888');
echo (int)$b;
Ou la plus belle solution consiste à utiliser intval:
$b = intval(str_replace(" ", "", '88 8888');
echo $b;
Si votre valeur '88 888' provient d'une autre variable, remplacez simplement '88 888' par la variable qui contient votre chaîne.
Utilisez str_replace
pour supprimer les espaces en premier?