Получить сумму цифр в PHP

Как найти сумму всех цифр числа в PHP?

array_sum(str_split($number)); 

Это предполагает, что число положительно (или, точнее, что преобразование $number в строку генерирует только цифры).

Метод Artefactos, безусловно, непревзойден, но здесь версия, как можно было бы сделать это «вручную»:

 $number = 1234567890; $sum = 0; do { $sum += $number % 10; } while ($number = (int) $number / 10); 

Это на самом деле быстрее, чем метод Artefactos (по крайней мере, для 1234567890 ), поскольку он экономит два вызова функций.

Другой способ, не так быстро, а не простая линия

 <?php $n = 123; $nstr = $n . ""; $sum = 0; for ($i = 0; $i < strlen($nstr); ++$i) { $sum += $nstr[$i]; } echo $sum; ?> 

Он также предполагает, что число положительное.

Если вас интересует регулярное выражение:

 array_sum(preg_split("//", $number)); 
 <html> <head> <title>detail</title> </head> <body> <?php $n = 123; $sum=0; $n1=0; for ($i =0; $i<=strlen($n);$i++) { $n1=$n%10; $sum += $n1; $n=$n/10; } echo $sum; ?> </body> </html> 

Вот код. Пожалуйста, попробуйте это

  <?php $d=0; $num=12345; $temp=$num; $sum=0; while($temp>1) { $temp=$temp/10; $d++; } echo "Digits Are : $d </br>"; for (;$num>1;) { $d=$num%10; $num=$num/10; $sum=$sum+$d; } echo "Sum of Digits is : $sum"; ?> в  <?php $d=0; $num=12345; $temp=$num; $sum=0; while($temp>1) { $temp=$temp/10; $d++; } echo "Digits Are : $d </br>"; for (;$num>1;) { $d=$num%10; $num=$num/10; $sum=$sum+$d; } echo "Sum of Digits is : $sum"; ?> 

Попробуйте следующий код:

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