php中数组的总和

时间:2016-06-12 22:06:09

标签: php arrays sum

我在下面有一个while循环运行一个查询并将一些值拉回到一个关联数组中,但是我似乎无法使用array_sum()得到数组的总和。

    if ($availableBooks->num_rows > 0) {
            while($row = $availableBooks->fetch_assoc()) {
               $allBooks = $row["price"];
               $totalCost =  array_sum($allBooks);
               echo $totalCost;
   }

如果我自己回复$ allBooks,我会得到“121”,它由我的数据库'1','2','1'中的三个值组成,但是你可以看到我想要总和他们得到'4'的输出。

目前我没有从上面得到任何输出。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

您可以将价格添加到数组中,然后在while循环后使用array_sum()

if ($availableBooks->num_rows > 0) {
    while($row = $availableBooks->fetch_assoc()) {
        $allBooks[] = $row["price"];
    }
    $totalCost =  array_sum($allBooks);
    echo $totalCost;
}

答案 1 :(得分:1)

如果这确实是您正在测试的代码,那么我可以注意到一些事情:

  1. 您正在将$row['price']的值直接分配给$allBooks变量。您想要使用array_sum()的事实让我觉得您的意图可能是将$allBooks变量中的所有价格保持为数组,在这种情况下您必须执行$allBooks[] = ... < / LI>
  2. 您似乎每次迭代都打印出$totalCost,因为它似乎在基于缩进的while循环内。
  3. 您缺少一个结束花括号。
  4. 怎么样?

    if ($availableBooks->num_rows > 0) {
        while ($row = $availableBooks->fetch_assoc()) {
            $allBooks[] = $row["price"];
        }
    }
    $totalCost = array_sum($allBooks);
    echo $totalCost;
    

答案 2 :(得分:0)

   if ($availableBooks->num_rows > 0) {
           $allBooks=array();
            while($row = $availableBooks->fetch_assoc()) {
               $allBooks[] = $row["price"];      
   }
   $totalCost =  array_sum($allBooks);
   echo $totalCost;}

array_sum应该在while循环之外。尝试使用代码并告诉我。

---------编辑----- jszobody解决方案比尝试修复代码要好得多。 如果您不需要单独购买书籍的价格,那就是这样。