我在下面有一个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'的输出。
目前我没有从上面得到任何输出。
任何帮助将不胜感激
答案 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)
如果这确实是您正在测试的代码,那么我可以注意到一些事情:
$row['price']
的值直接分配给$allBooks
变量。您想要使用array_sum()
的事实让我觉得您的意图可能是将$allBooks
变量中的所有价格保持为数组,在这种情况下您必须执行$allBooks[] = ...
< / LI>
$totalCost
,因为它似乎在基于缩进的while
循环内。怎么样?
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解决方案比尝试修复代码要好得多。 如果您不需要单独购买书籍的价格,那就是这样。