吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 978|回复: 12
收起左侧

[求助] 二个 二维数组 对比 生成新的二维数组

[复制链接]
xiaolei1314555 发表于 2023-2-7 13:45
本帖最后由 xiaolei1314555 于 2023-2-7 13:51 编辑

第一个二维数组:
[PHP] 纯文本查看 复制代码
array(2) {
  [0]=>
  array(6) {
    ["id"]=> 1
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "238756"
    ["name"]=> "帅帅矿岩石不粘炒锅32cm/个"
    ["qty"]=> "2.00"

  }
  [1]=>
  array(6) {
    ["id"]=> 2
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "238757"
    ["name"]=> "帅帅不粘炒锅/个"
    ["qty"]=> "2.00"
  }  [2]=>
  array(6) {
    ["id"]=> 3
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "245093"
    ["name"]=> "凤品优作全铸铁真不锈炒锅(有盖)32cm/个"
    ["qty"]=> "3.00"
  }
}

第二个二维数组:
[PHP] 纯文本查看 复制代码
array(4) {
  [0]=>
  array(6) {
    ["id"]=> 1
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "206646"
    ["name"]=> "王麻子麦典麦饭石炒锅32cm/个"
    ["qty"]=> "36.00"

  }
  [1]=>
  array(6) {
    ["id"]=> 2
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "238757"
    ["name"]=> "帅帅不粘炒锅/个"
    ["qty"]=> "2.00"
  }  
  [2]=>
  array(6) {
    ["id"]=> 3
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "345417"
    ["name"]=> "凤品优作全铸铁真不锈炖锅32cm/个"
    ["qty"]=> "22.00"
  }  
  [3]=>
  array(6) {
    ["id"]=> 4
    ["number"]=> "0001202203180001"
    ["goods_shelves"]=> "2H01JA01-03"
    ["goodsid"]=> "238756"
    ["name"]=> "帅帅矿岩石不粘炒锅32cm/个"
    ["qty"]=> "3.00"
  }
}


怎么写个方法实现 2个二维数组 变成一个二维数组 格式如下:
[PHP] 纯文本查看 复制代码
  array(4) {            
    [0]=>            
    array(6) {              
      ["id"]=> 1             
      ["number"]=> "0001202203180001"              
      ["goods_shelves"]=> "2H01JA01-03"              
      ["goodsid"]=> "206646"              
      ["name"]=> "王麻子麦典麦饭石炒锅32cm/个"              
      ["a_qty"]=> "0.00"             
      ["b_qty"]=> "36.00"              
      ["c_qty"]=> "0"            
    }            
    [1]=>            
    array(6) {              
      ["id"]=> 2              
      ["number"]=> "0001202203180001"              
      ["goods_shelves"]=> "2H01JA01-03"              
      ["goodsid"]=> "238757"              
      ["name"]=> "帅帅不粘炒锅/个"              
      ["a_qty"]=> "2.00"              
      ["b_qty"]=> "2.00"              
      ["c_qty"]=> "2.00"                        
    }            
    [2]=>            
    array(6) {             
      ["id"]=> 3              
      ["number"]=> "0001202203180001"              
      ["goods_shelves"]=> "2H01JA01-03"              
      ["goodsid"]=> "345417"              
      ["name"]=> "凤品优作全铸铁真不锈炖锅32cm/个"              
      ["a_qty"]=> "0.00"              
      ["b_qty"]=> "22.00"              
      ["c_qty"]=> "0"            
    }            
    [3]=>            
    array(6) {              
      ["id"]=> 4              
      ["number"]=> "0001202203180001"              
      ["goods_shelves"]=> "2H01JA01-03"              
      ["goodsid"]=> "238756"              
      ["name"]=> "帅帅矿岩石不粘炒锅32cm/个"              
      ["a_qty"]=> "2.00"              
      ["b_qty"]=> "3.00"              
      ["c_qty"]=> "0"            
    }                
    [4]=>            
    array(6) {              
      ["id"]=> 5              
      ["number"]=> "0001202203180001"              
      ["goods_shelves"]=> "2H01JA01-03"              
      ["goodsid"]=> "245093"              
      ["name"]=> "凤品优作全铸铁真不锈炒锅(有盖)32cm/个"              
      ["a_qty"]=> "3.00"              
      ["b_qty"]=> "0.00"              
      ["c_qty"]=> "0"            
    }              
  }  

数组1:里面的qty变成了a_qty ,数组2:里面的qty变成了b_qty ,生成新的二维数组的c_qty 是进行数组1和数组2 goodsid相同 a_qty 等于 b_qty 那么c_qty 就为 a_qty  如果不相等 或者有差异 那就是0
请问下 怎么在PHP 写个方法 实现上面的情况,请论坛大牛指点

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xiaolei1314555 发表于 2023-2-7 13:55
之前在数据用union进行匹配查询,但是属于sql的慢查询,在并发高数据量大的时候,处理数据非常非常的慢。 所以现在转换成了2个二维数组,然后通过PHP 进行数据应该会比在mysql下数据处理的速度要快很多吧。 求大牛指点  谢谢
psvajaz 发表于 2023-2-7 14:03
数组比较麻烦,不知道你是什么语言的,最简单的办法是将数据导入sql,然后使用楼上说的union方法进行合并
 楼主| xiaolei1314555 发表于 2023-2-7 14:05
psvajaz 发表于 2023-2-7 14:03
数组比较麻烦,不知道你是什么语言的,最简单的办法是将数据导入sql,然后使用楼上说的union方法进行合并

我之前就是在mysql中 用的union进行比较写的,但是处理高并发数据量大的情况下非常慢。 我用的是PHP
psvajaz 发表于 2023-2-7 14:14
PHP不清楚有什么快捷方式,我对C#比较熟悉,C#可以使用LINQ性能不叫快。
另外如果你的并发比较大,你可以做数据库的读写分离和用存储过程来实现。
如果数据量大,把数据从数据库读到php的变量,这里还有传输速度的损耗,不太建议在php中实现
 楼主| xiaolei1314555 发表于 2023-2-7 14:24
psvajaz 发表于 2023-2-7 14:14
PHP不清楚有什么快捷方式,我对C#比较熟悉,C#可以使用LINQ性能不叫快。
另外如果你的并发比较大,你可以 ...

mysql这种我看都不建议写储存过程,哎!
我这个主要场景用在做盘点程序上面,手机端有app。 并发高,但是处理数据多的也就是200-300条那样,之前用union并发少的情况还可以,高的话就处理的非常非常慢。 我心思把2个表的数据通过条件茶不能出来 然后用foreach循环写一下,不过我想简单了没写出来。  只能通过大牛在论坛请教了
laoda1228 发表于 2023-2-7 14:28
看的不想python   应该是别的语言
 楼主| xiaolei1314555 发表于 2023-2-7 14:35
laoda1228 发表于 2023-2-7 14:28
看的不想python   应该是别的语言

后端是PHP,在PHP中不知道怎么实现
祥哥 发表于 2023-2-7 14:51
不妨先把goodsid当成键值来写
 楼主| xiaolei1314555 发表于 2023-2-7 14:57
祥哥 发表于 2023-2-7 14:51
不妨先把goodsid当成键值来写

老哥 ,请问下怎么写呢。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表