我看过许多帖子解释使用array_unique
,但我认为这不适合我的情景......
我在此报告中有多个结果,如果您从我的图片中注意到ST / OT有重复的1.50
和2.00
值,因为每个sql条目都有1.50
和{{1} }对于每个st_ot单元格
在它总计的底部,显然现在来自2.00
。它加起来总数。但我真正想要的是总共$stot_total += $data["stot"];
。我不希望它添加重复项。
所有1.50 + 2.00 (3.50)
的{{1}}也具有相同的1.50
,因此,如果只能添加ID#
,ID#1
,ID#2
的值,那么{{} 1}}等......这对我有用......
我为这个可怕的帖子道歉......这个问题仅关于ST / OT值**
ID#3
答案 0 :(得分:1)
您可以尝试这样的事情:
<?php
$stot_bucket = array();
foreach ($records as $record) {
// do your normal rendering of all the rows
$stot_bucket[] = $record['stot'];
}
$stot_total = array_sum(array_unique($stot_bucket));
?>
Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2 i.e. when the string representation is the same, the first element will be used.
答案 1 :(得分:1)
对@awei的回答进行简单修改应该可以解决这个问题:
<?php
$stot_bucket = array();
foreach($dary as $data)
{
// Since you don't need to access the values in a multi-dimensional way, just combine the two keys into one to make the final summing simpler
$stot_bucket[$data["id"] . $data["stot"]] = $data["stot"];
}
$stot_total = array_sum($stot_bucket);
?>