Comment trouver la somme de tous les chiffres d'un nombre en PHP?
array_sum(str_split($number));
Cela suppose que le nombre est positif (ou, plus précisément, que la conversion de $number
en chaîne ne génère que des chiffres).
La méthode Artefactos est évidemment imbattable, mais voici une version permettant de le faire "manuellement":
$number = 1234567890;
$sum = 0;
do {
$sum += $number % 10;
}
while ($number = (int) $number / 10);
C'est en réalité plus rapide que la méthode Artefactos (au moins pour 1234567890
), car elle enregistre deux appels de fonction.
Une autre façon, pas si rapide, pas simple ligne simple
<?php
$n = 123;
$nstr = $n . "";
$sum = 0;
for ($i = 0; $i < strlen($nstr); ++$i)
{
$sum += $nstr[$i];
}
echo $sum;
?>
Il suppose également que le nombre est positif.
Si vous êtes intéressé par regex:
array_sum(preg_split("//", $number));
<?php
echo"----Sum of digit using php----";
echo"<br/ >";
$num=98765;
$sum=0;
$rem=0;
for($i=0;$i<=$num;$i++)
{
$rem=$num%10;
$sum=$sum+$rem;
$num=$num/10;
}
echo "The sum of digit 98765 is ".$sum;
?>
-----------------Output-------------
----Sum of digit using php----
The sum of digit 98765 is 35
Essayez le code suivant:
<?php
$num = 525;
$sum = 0;
while ($num > 0)
{
$sum= $sum + ($num % 10);
$num= $num / 10;
}
echo "Summation=" . $sum;
?>
// math before code
// base of digit sums is 9
// the product of all numbers multiplied by 9 equals 9 as digit sum
$nr = 58821.5712; // any number
// Initiallization
$d = array();
$d = explode(".",$nr); // cut decimal digits
$fl = strlen($d[1]); // count decimal digits
$pow = pow(10 ,$fl); // power up for integer
$nr = $nr * $pow; // make float become integer
// The Code
$ds = $nr % 9; // modulo of 9
if($ds == 0) $ds=9; // cancel out zeros
echo $ds;
Supposons que vous souhaitiez trouver la somme des chiffres d'un nombre, par exemple 2395, la solution la plus simple consisterait tout d'abord à fractionner les chiffres et à trouver la somme, puis à concaténer tous les nombres en un seul nombre.
<?php
$number=2;
$number1=3;
$number2=9;
$number3=5;
$combine=$number.$number1.$number2.$number3;
$sum=$number+$number1+$number2+$number3;
echo "The sum of $combine is $sum";
?>