Php计数数字列表

时间:2017-10-06 06:41:56

标签: php count

我正在等待" 11111"我想把所有这些应该变成5的数字加起来。但如果我使用计数,它只显示一个,即1.Rather它应该显示为5.

以下是我的代码,

$count = count($inventory['product_id']);

$product_total = $count;
echo $product_total;//o/p => 1.

我需要echo $ product_total; // o / p => 5。

4 个答案:

答案 0 :(得分:2)

您可以使用str_split使用以下内容来获取包含所有字符(在您的情况下为数字)的数组,并使用array_sum获取所有数字的总和:

$digits = "11112";
$arrDigits = str_split($digits);

echo array_sum($arrDigits); //6 (1 + 1 + 1 + 1 + 2)

演示: https://ideone.com/tZwi9J

答案 1 :(得分:0)

Count用于计算数组元素。

你可以在PHP中做的是使用foreach(不是100%肯定)或for循环来迭代字符串,并通过索引访问数组元素之类的元素:

$str = '111111123545';
$sum = 0;
for ($i = 0; $i < strlen($str); $i++) {
    $sum += intval($str[$i]);
}

print $sum; // prints 26

另外,您可以使用无分隔符并使用array_sum()函数拆分字符串:

$str = '111111123545';
$sum = array_sum(str_split($str));
print $sum; // prints 26

答案 2 :(得分:0)

array_sum(str_split($number));

答案 3 :(得分:0)

计算PHP中数字列表的另一种可能方法是:

// match only digits, returns counts
echo preg_match_all( "/[0-9]/", $str, $match ); 

// sum of digits
echo array_sum($match[0]);

示例:

$ php -r '$str="s12345abas"; echo "Count :".preg_match_all( "/[0-9]/", $str, $match ).PHP_EOL; echo "Sum :".array_sum($match[0]).PHP_EOL;'
Count :5
Sum :15