我正在等待" 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。
答案 0 :(得分:2)
您可以使用str_split
使用以下内容来获取包含所有字符(在您的情况下为数字)的数组,并使用array_sum
获取所有数字的总和:
$digits = "11112";
$arrDigits = str_split($digits);
echo array_sum($arrDigits); //6 (1 + 1 + 1 + 1 + 2)
答案 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