删除php循环中的重复项 - 仅从唯一ID中加入值#

时间:2014-06-27 15:13:19

标签: php

我看过许多帖子解释使用array_unique,但我认为这不适合我的情景......

我在此报告中有多个结果,如果您从我的图片中注意到ST / OT有重复的1.502.00值,因为每个sql条目都有1.50和{{1} }对于每个st_ot单元格

在它总计的底部,显然现在来自2.00。它加起来总数。但我真正想要的是总共$stot_total += $data["stot"];。我不希望它添加重复项。

所有1.50 + 2.00 (3.50)的{​​{1}}也具有相同的1.50,因此,如果只能添加ID#ID#1ID#2的值,那么{{} 1}}等......这对我有用......

我为这个可怕的帖子道歉......这个问题仅关于ST / OT值**

ID#3

enter image description here

2 个答案:

答案 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));
?>

参考:array_unique docs

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);
?>