web-dev-qa-db-fra.com

Obtenir la somme des chiffres dans PHP

Comment trouver la somme de tous les chiffres d'un nombre en PHP?

24
Leticia Meyere
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).

98
Artefacto

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.

13
NikiC

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.

4
BrunoLM

Si vous êtes intéressé par regex:

array_sum(preg_split("//", $number));
0
itsazzad
    <?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
0
Ashutosh Verma

Essayez le code suivant:

<?php

$num = 525;
$sum = 0;

while ($num > 0)
{
    $sum= $sum + ($num % 10);
    $num= $num / 10;
}
echo "Summation=" . $sum;

?>
0
Mayank Dudakiya
// 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;
0
stereoIII6

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";
     ?>
0
Chandan Baruah