簡體   English   中英

PHP中數組的總和

[英]Sum of an array in php

我下面有一個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”。

目前,我沒有從上述任何輸出。

任何幫助,將不勝感激

您可以將價格添加到數組,然后在while循環之后使用array_sum()

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

如果這確實是您要測試的代碼,那么我會注意到一些事情:

  1. 您將$row['price']直接分配給$allBooks變量。 您想使用array_sum()的事實使我認為,也許您的意圖是將所有價格保留在$allBooks變量中作為數組,在這種情況下,您將必須執行$allBooks[] = ...
  2. 您似乎$totalCost為每次迭代打印$totalCost ,因為它似乎位於基於縮進的while循環中。
  3. 您缺少一個右花括號。

怎么樣?

if ($availableBooks->num_rows > 0) {
    while ($row = $availableBooks->fetch_assoc()) {
        $allBooks[] = $row["price"];
    }
}
$totalCost = array_sum($allBooks);
echo $totalCost;
   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解決方案比嘗試修復代碼要好得多。 那就是如果您不需要個別的書本價格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM