Получить сумму цифр в PHP - PullRequest
25 голосов
/ 13 июля 2010

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

Ответы [ 10 ]

99 голосов
/ 13 июля 2010
array_sum(str_split($number));

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

13 голосов
/ 13 июля 2010

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

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

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

4 голосов
/ 13 июля 2010

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

<?php

    $n = 123;
    $nstr = $n . "";

    $sum = 0;
    for ($i = 0; $i < strlen($nstr); ++$i)
    {
        $sum += $nstr[$i];
    }
    echo $sum;

?>

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

0 голосов
/ 19 августа 2018
// 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 голосов
/ 13 июля 2018
    <?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 голосов
/ 05 января 2018

Предположим, вы хотите найти сумму цифр числа, скажем, 2395, и самым простым решением было бы сначала разбить цифры и найти сумму, а затем объединить все числа в одно число.

<?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 голосов
/ 07 сентября 2015

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

array_sum(preg_split("//", $number));
0 голосов
/ 30 мая 2015

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

<?php

$num = 525;
$sum = 0;

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

?>
0 голосов
/ 27 февраля 2014

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

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

   ?>
0 голосов
/ 07 мая 2013
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...