• 一、前言
    • 1、问题描述
    • 2、基本思路
  • 二、代码
  • 三、打印

一、前言

1、问题描述

  • 已知:二维数组的数据:id 主键ID;special_id 专题ID;goods_id 专题关联的商品ID
  • :每个专题里重复商品的主键ID

2、基本思路

  • 1、把数据处理成专题ID为键,里面包含单个专题的所有商品。
  • 2、循环处理后的数据,循环商品数据,找出重复商品数据的主键ID

二、代码

//PHP找出专题下重复的商品数据
public function test() {//待处理的数据:id 主键ID;special_id 专题ID;goods_id 专题关联的商品ID$data = [['id' => 1, 'special_id' => 1, 'goods_id' => 1],['id' => 2, 'special_id' => 1, 'goods_id' => 2],['id' => 3, 'special_id' => 1, 'goods_id' => 3],['id' => 4, 'special_id' => 1, 'goods_id' => 1],['id' => 5, 'special_id' => 2, 'goods_id' => 2],['id' => 6, 'special_id' => 2, 'goods_id' => 3],['id' => 7, 'special_id' => 2, 'goods_id' => 4],['id' => 8, 'special_id' => 2, 'goods_id' => 3],['id' => 9, 'special_id' => 3, 'goods_id' => 5],['id' => 10, 'special_id' => 3, 'goods_id' => 5],['id' => 11, 'special_id' => 3, 'goods_id' => 5],['id' => 12, 'special_id' => 3, 'goods_id' => 5],['id' => 13, 'special_id' => 4, 'goods_id' => 1],['id' => 14, 'special_id' => 4, 'goods_id' => 2],['id' => 15, 'special_id' => 4, 'goods_id' => 3]];//把数据按special_id分组,处理成以special_id为键,里面是关联的商品数据(二维数组)$deleteId = $specialList = [];foreach ($data as $value) {$specialList[$value['special_id']][] = $value;}//循环每一个专题下的商品数据,查找出有重复商品的主键IDforeach ($specialList as $specialId => $value) {$goodsIds = []; //单个专题下的商品ID(一维数组)foreach ($value as $goodsInfo) {    //循环单个专题下的所有商品$goodsId = $goodsInfo['goods_id'];if (in_array($goodsId, $goodsIds)) {    //如果商品ID已存在,则说明重复了$deleteId[] = $goodsInfo['id'];  //删除的主键ID追加continue;   //跳出本次循环,直接执行下一次循环}$goodsIds[] = $goodsId; //单个专题下的商品ID追加}}if ($deleteId) {exit("重复数据的ID为 [" . implode(',', $deleteId) . "]");}else{exit("专题下无重复的商品数据");}
}

三、打印

重复数据的ID为 [4,8,10,11,12]

PHP找出专题下重复的商品数据相关推荐

  1. 找出数组中重复的数字---多思路

    问题:找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意 ...

  2. 找出重复的数java_剑指offer:1.找出数组中重复的数(java版)

    数组中重复的数: 题目:找出数组中重复的数, 题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的. 也不知道每个数字重复几次.请找 ...

  3. java如何找重复数字_Java如何找出数组中重复的数字

    题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...

  4. 图解面试题:找出数组中重复的数字?

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

  5. 在linux中查找重复的文件夹,如何在Linux上找出并删除重复的文件:FSlint

    大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件.这里有一款工具你可以工具自己的需要使用. 无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重 ...

  6. 在一段英文字母中找出每个字母重复数量的方法(Java)

    首先需要了解下java的hashmap数据类型: hashmap是基于哈希表的Map接口的实现.hashmap有两个元素,一个是key(键名),一个是value(键值),就相当于一个字典了,和Pyth ...

  7. 01、找出数组中重复的数字

    1.找出数组中重复的数字 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. ...

  8. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  9. 13. 找出数组中重复的数字【难度: 简单 / 知识点: 模拟】

    13. 找出数组中重复的数字[难度: 简单 / 知识点: 模拟] 方法一: map 计数 时间复杂度O(nlongn) 空间复杂度多了一个二叉树 class Solution {public:int ...

  10. Javascript找出所有没有重复的字符(优化)

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>< ...

最新文章

  1. android layout属性介绍
  2. Beanutils.copyProperties复制参数不为null的属性
  3. hibernate 多对一(Many-to-one)单向关联
  4. Java基础课程---权限修饰符
  5. GitHub Pages和每个项目绑定自定义域名(支持多个和顶级域名)
  6. pythonATM自动存取款机7天密码保护
  7. AFNetworking 3.0迁移指南
  8. 爱因斯坦诞辰140周年:带你走近一个真实的爱神
  9. JAVA的数据类型有哪些?
  10. 需求分析——使用类图建模
  11. Kotlin学习总结(1)——Kotlin快速入门
  12. 网安入门须知:Python基础导读
  13. 23种设计模式(二)组件协作之模板方法
  14. mssql 数据库“查询处理器用尽了内部资源,无法生成查询计划。”问题的处理...
  15. mysql join与where_mysql中left join设置条件在on与where时的用法区别分析
  16. 【python】打造一款自动扫描全网漏洞的扫描器
  17. 解析Linux商业应用现状
  18. 数据库课程设计——学生宿舍信息管理系统
  19. kcl计算机科学与技术研究生,KCL的Data Science「伦敦大学国王学院数据科学理学硕士」...
  20. 将参数量化为二进制补码定点数的形式

热门文章

  1. win8虚拟机_VMware15虚拟机软件安装包+安装教程
  2. 中科院30m二级分类土地利用数据Arcgis预处理及获取
  3. STL--vector、pair
  4. win iis mysql php_Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
  5. 初中计算机教案ps,第三课 利用Adobe Photoshop工具处理图片
  6. linux android交叉编译,【转】搭建arm-linux-gcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)...
  7. bat文件语法和技巧_这不是高手专利,一秒新建100个Excel文件
  8. git tag 使用方法(打标签、发布及回滚)
  9. 冰雪、飞禽勾勒出青海湖冬日“水墨画”
  10. 001_动力节点_SpringMVC4_SpringMVC简介