Как найти сумму всех цифр числа в PHP?
Получить сумму цифр в PHP
Ответ 1
array_sum(str_split($number));
Это предполагает, что число положительно (или, точнее, преобразование $number
в строку генерирует только цифры).
Ответ 2
Метод Artefactos, безусловно, непревзойден, но здесь версия, как можно было бы сделать это "вручную":
$number = 1234567890;
$sum = 0;
do {
$sum += $number % 10;
}
while ($number = (int) $number / 10);
Это быстрее, чем метод Artefactos (по крайней мере, для 1234567890
), поскольку он сохраняет два вызова функций.
Ответ 3
Другой способ, не так быстро, а не простая строка
<?php
$n = 123;
$nstr = $n . "";
$sum = 0;
for ($i = 0; $i < strlen($nstr); ++$i)
{
$sum += $nstr[$i];
}
echo $sum;
?>
Он также предполагает, что число положительно.
Ответ 4
Если вас интересует регулярное выражение:
array_sum(preg_split("//", $number));
Ответ 5
Предположим, что вы хотите найти сумму цифр числа, скажем, 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";
?>
Ответ 6
<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>
Ответ 7
Вот код.. Пожалуйста, попробуйте это
<?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";
?>
Ответ 8
Попробуйте использовать следующий код:
<?php
$num = 525;
$sum = 0;
while ($num > 0)
{
$sum= $sum + ($num % 10);
$num= $num / 10;
}
echo "Summation=" . $sum;
?>