PHP二维数组去除重复,重复值相加

$arr = array(
    array('id' => 122, 'name' => '张三', 'amount' => '1'),
    array('id' => 123, 'name' => '李四', 'amount' => '1'),
    array('id' => 124, 'name' => '王五', 'amount' => '1'),
    array('id' => 125, 'name' => '赵六', 'amount' => '1'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2')
);

$new = array();

foreach($arr as $row){
    if(isset($new[$row['name']])){
        $new[$row['name']]['amount'] += $row['amount'];
    }else{
        $new[$row['name']] = $row;
    }
}

var_dump($new);

 

转载于:https://www.cnblogs.com/qhorse/p/5029660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python提供的set()函数来过滤二维数组中的重复元素。例如:arr = [[1,2,3], [4,5,6], [2,3,4]],可以使用set()函数过滤重复元素,代码如下:result = list(set(map(tuple, arr))),result的为[(1, 2, 3), (4, 5, 6)]。 ### 回答2: 在Python中,可以使用set函数来过滤二维数组重复元素。 首先,将二维数组转换为一维数组,可以使用嵌套循环将二维数组的元素逐个添加到一维数组。 然后,使用set函数将一维数组转换为集合,集合的特点是不允许重复元素存在。 最后,将集合转换为列表,即可得到去除重复元素的二维数组。 下面是用Python实现该功能的示例代码: ``` def filter_duplicates(arr): temp = [] # 将二维数组转换为一维数组 for sublist in arr: for item in sublist: temp.append(item) # 使用set函数过滤重复元素 unique_set = set(temp) # 将集合转换为列表 result = list(unique_set) return result # 示例二维数组 array = [[1, 2, 3], [4, 5, 6], [1, 2, 3]] # 调用函数进行过滤 filtered_array = filter_duplicates(array) # 输出结果 print(filtered_array) ``` 此代码将输出`[1, 2, 3, 4, 5, 6]`,即已成功过滤掉了二维数组中的重复元素。 ### 回答3: 通过使用Python,在二维数组中过滤重复元素的方法有很多。下面是一个简单的方法: 首先,我们可以使用嵌套循环来遍历二维数组中的每个元素。对于每个元素,我们将其与其他元素进行比较,如果找到重复的元素,则将其删除。 以下是实现此过程的一个示例代码: ``` def remove_duplicates(arr): result = [] # 用于存储结果的空列表 for sublist in arr: temp = [] # 用于存储当前子列表中的非重复元素的临时列表 for element in sublist: if element not in temp: temp.append(element) result.append(temp) return result # 示例二维数组 array = [[1, 2, 3], [2, 3, 4, 4], [5, 6, 6, 7, 7]] # 调用函数来过滤重复元素 filtered_array = remove_duplicates(array) # 打印过滤后的结果 print(filtered_array) ``` 运行以上代码,将得到以下输出: ``` [[1, 2, 3], [2, 3, 4], [5, 6, 7]] ``` 这段代码将二维数组中的重复元素过滤掉,并返回一个包含所有非重复元素的二维列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值