PHP:循环遍历对象数组,并在第一行显示所有记录的总和
假设我有以下数组:PHP:循环遍历对象数组,并在第一行显示所有记录的总和,php,loops,Php,Loops,假设我有以下数组: $array = [ ['time_spent' => 10, 'rate' => 150], ['time_spent' => 20, 'rate' => 100] ]; 我希望该表如下所示: 它有2行4列时间花费、比率、总计、总计: 第一行是: 10 | 150 | 10 x 150 = 1500 | 3500 第二排: 20 | 100 | 10 x 200 = 2000 3500是两条记录的总和假设您想要输出一个HTM
$array = [
['time_spent' => 10, 'rate' => 150],
['time_spent' => 20, 'rate' => 100]
];
我希望该表如下所示:
它有2行4列时间花费、比率、总计、总计:
第一行是:
10 | 150 | 10 x 150 = 1500 | 3500
第二排:
20 | 100 | 10 x 200 = 2000
3500是两条记录的总和假设您想要输出一个HTML表,类似这样的东西可以工作
$array= [
["time_spent"=> 10, "rate"=> 150],
["time_spent"=> 20, "rate"=> 100]
];
$html = [];
$sum = 0;
foreach ($array as $i => $row) {
$product = $row['rate'] * $row['time_spent'];
$line = "<tr><td>{$row['time_spent']}</td><td>{$row['rate]'}</td>";
$line .= "<td>{$row['time_spent']} x {$row['rate']} = {$product}</td>";
if ($i !== 0) {
$line .= '</tr>';
}
$html[] = $line;
$sum += $product;
}
$rowCount = count($html);
$html[0] .= "<td rowspan='{$rowCount}'>{$sum}</td></tr>";
echo '<table>' . implode('', $html) . '</table>';
编辑:更改代码以反映输入中的更改
请注意,有更好的方法可以简单地计算总和。此方法通过单循环数据生成所需的显示和总和。在开始打印表格之前,您需要计算总计。然后您可以在表的第一行显示它
$grand_total = 0;
foreach ($array as $item) {
$grand_total += $item['rate'] * $item['time_spent'];
}
echo "<table>";
foreach ($array as $i => $item) {
$total = $row['time_spent'] * $row['rate'];
echo "<tr><td>{$row['time_spent']}</td><td>{$row['rate']}</td>";
if ($i == 0) { // first row, show grand total
echo "<td>$total</td><td>$grand_total</td>";
} else {
echo "<td colspan='2'>$total</td>";
}
echo "</tr>";
}
echo "</table>";
物体在哪里?您使用的代码是什么时候?你遇到了什么问题?你要哪张桌子?DB?Json?这不是PHP数组的语法。嗨,Tony,你能给我们展示一下你的解决方案吗,即使它不能满足你的要求,告诉我们你有什么问题吗?你真的有一个包含两个json字符串的数组吗?@Tony,让我们知道你自己尝试过什么代码。这样我们就可以帮助你说出你需要改正的地方。要求为您编写整个程序不是一个好方法。这也是一个循环程序。您需要将PHP代码添加到循环中。