Get the sum of all digits in a numeric string

Viewed 49302

How do I find the sum of all the digits in a number in PHP?

13 Answers
function addDigits($num) {

    if ($num % 9 == 0 && $num > 0) {
        return 9;
    } else {
          return $num % 9;
        }
    }

only O(n)

at LeetCode submit result: Runtime: 4 ms, faster than 92.86% of PHP online submissions for Add Digits. Memory Usage: 14.3 MB, less than 100.00% of PHP online submissions for Add Digits.

<?php 
// PHP program to calculate the sum of digits 
function sum($num) { 
    $sum = 0; 
    for ($i = 0; $i < strlen($num); $i++){ 
        $sum += $num[$i]; 
    } 
    return $sum; 
} 

// Driver Code 
$num = "925"; 
echo sum($num); 
?> 

Result will be 9+2+5 = 16

    <?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
// 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;

One way of getting sum of digit however this is a slowest route.

$n=123;
while(($n=$n-9)>9);
echo "n: $n";
Related