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

Как я нахожу сумму всех цифр в числе в PHP?

25
задан Mark Amery 30 May 2015 в 19:59
поделиться

3 ответа

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

<?php

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

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

?>

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

4
ответ дан 28 November 2019 в 17:37
поделиться

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

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

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

13
ответ дан 28 November 2019 в 17:37
поделиться
array_sum(str_split($number));

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

101
ответ дан 28 November 2019 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: