当前位置: 首页 > 面试题库 >

php数组查找重复项,将它们汇总并删除重复项

尚嘉勋
2023-03-14
问题内容

我有一个数组:

Array 
(
[0] => Array
    (
        [setid] => 2
        [income] => 100
    )

[1] => Array
    (
        [setid] => 2
        [income] => 120
    )

[2] => Array
    (
        [setid] => 3
        [income] => 700
    )
)

我需要找到具有相同setid的条目,将它们的收入加起来并删除重复的条目-最后,它应该看起来像这样:

Array
(
[0] => Array
    (
        [setid] => 2
        [income] => 220
    )

[1] => Array
    (
        [setid] => 3
        [income] => 700
    )
)

有人知道我的问题有解决方案吗?还是我必须走很长的路并手动执行每个步骤?

谢谢和问候


问题答案:

只需创建一个新数组,您就可以使用setid作为键来快速进行寻址。并在最后对数组重新索引。

$result = array();
foreach ($array as $val) {
    if (!isset($result[$val['setid']]))
        $result[$val['setid']] = $val;
    else
        $result[$val['setid']]['income'] += $val['income'];
}
$result = array_values($result); // reindex array


 类似资料:
  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 问题内容: 嗨,我正在尝试合并两个数组,并且还想从最终数组中删除重复的值。 这是我的数组1: 这是我的数组2: 我用于将两个数组合并为一个数组。它正在给出这样的输出 我要删除这些重复的条目,或者在合并之前删除它们…请帮助。.谢谢!!! 问题答案: http://se2.php.net/manual/zh/function.array- unique.php

  • 问题内容: 我有一个数组,正在寻找重复项。 但是,当没有重复项时,此代码不起作用。为什么? 问题答案: On the nose answer.. 编辑后切换回原来的位置,因为我在你正在使用的地方阅读过,最初的问题尚不清楚。还要设置,以将执行时间减半,但仍为O(n 2)。 A faster (in the limit) way 这是一种基于哈希的方法。你需要为自动装箱付款,但是它是O(n)而不是O(

  • 问题内容: 我使用下面的代码行遍历数据库中的一个表: 如果我打印出数组: 我会得到这个: 但是我想摆脱数组中的重复项,所以我使用 我得到下面的奇怪结果,这不是我想要的结果: 理想情况下,我认为它应该返回以下内容: 我该怎么做才能正确处理?我使用了错误的PHP语法/默认功能吗? 问题答案: 该功能将为您完成此操作。您只需要添加标志:

  • 问题内容: 例如,我有上面的元组列表,如何找到重复项(即“ Visa”)并求和它们的值(即980.5 + 215.0)?输出应为: 问题答案: 使用字典:

  • 问题内容: 如果它具有另一个数组的元素,是否还有其他更好的方法可以从一个数组中删除重复项呢,它工作得很好。 问题答案: 或者,随着ES6的推出: