web-dev-qa-db-fra.com

Comment puis-je exploser un entier

la réponse à cela pourrait être facile. Mais je suis très frais pour programmer. Alors soyez doux ...

Je suis au travail en essayant de faire une solution rapide pour l'un de vos clients. Je veux obtenir le nombre total de chiffres dans un entier, puis exploser l'entier:

rx_freq = 1331000000 ( = 10 )
  $array[0] = 1
  $array[1] = 3
  .
  .
  $array[9] = 0

rx_freq = 990909099 ( = 9 )
  $array[0] = 9
  $array[1] = 9
  .
  .
  $array[8] = 9

Je ne suis pas en mesure d'utiliser exploser, car cette fonction nécessite un délimiteur. J'ai cherché l'Eyh'old Google and Stackoverflow.

Fondamentalement: comment puis-je exploser un entier sans délimiteur et comment puis-je trouver le nombre de chiffres dans un entier?.

17
chriscandy

$array = str_split($int) et $num_digits = strlen($int) devrait fonctionner très bien.

41
mfonda

Utilisez la fonction - str_split () :

$array = str_split(1331000000);

Grâce à la coercition de type automatisée de PHP, l'INT passé sera converti sur une chaîne automatiquement. Mais si vous voulez, vous pouvez également ajouter une fonte explicite.

10
ThiefMaster

Je sais que c'est vieux, mais je viens de tomber. Peut-être que cela peut aider quelqu'un d'autre.

Convertissez d'abord le numéro à une chaîne. C'est très facile à faire. $number = 45675; // numéro que vous voulez scinder

$nums = ""; //Declare a variable with empty set.

$nums .= $number; //concatenate the empty string with the integer $number You can also use

$nums = $nums.$number; // this and the expression above do the same thing choose whichever you
                     //like.. This concatenation automatically converts integer to string
$nums[0] is now 4, $nums[1] is now 5, etc..
$length = strlen($nums); // This is the length of your integer.
$target = strlen($nums) -1; // target the last digit in the string;    
$last_digit = $nums[$target]; // This is the value of 5. Last digit in the (now string)

J'espère que cela aide quelqu'un!

1
Golden Pelican