• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【已解决】php 数组合并的问题

php 搞代码 3年前 (2022-01-22) 24次浏览 已收录 0个评论
文章目录[隐藏]

<body>

遇到的问题:
当前有两个数组,已知的是两个数组中,数组1中的id等于数组2中的pid,问题是,要把数组2中的img_url合并到到数组1中对应的id下。

最终需要实现:

Array ( [0] => Array ( [id] => 7 [collection_id] => 1 [prize_num] => 1 [prize_name] => 立减20元 [total] => 10 ,**[url_img]=> /upload/business/1476342419.png** ) [1] => Array ( [id] => 8 [collection_id] => 1 [prize_num] => 2 [prize_name] => 全单8折 [total] => 20,**[url_img]=> /upload/business/1476348963.jpg**)

问题已解决

先跑第一个循环,在里面跑第二个循环,去第二个数组找符合条件的item%20%20%20%20foreach%20($shopPrizeName%20as%20$key%20=>%20$value)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20foreach%20($shopPImagesName%20as9来源gaodai#ma#com搞@代~码$网搞gaodaima代码%20$k%20=>%20$v)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($value['id']%20==%20$v['pid'])%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$value['img_url']%20%20%20%20=%20%20%20%20$v['img_url'];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$shopData[]%20%20%20%20=%20%20%20%20$value;%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20print_r($shopData);

%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20

%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20

回复内容:

%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20<body>

遇到的问题:
当前有两个数组,已知的是两个数组中,数组1中的id等于数组2中的pid,问题是,要把数组2中的img_url合并到到数组1中对应的id下。

最终需要实现:

Array%20(%20[0]%20=>%20Array%20(%20[id]%20=>%207%20[collection_id]%20=>%201%20[prize_num]%20=>%201%20[prize_name]%20=>%20立减20元%20[total]%20=>%2010%20,**[url_img]=>%20/upload/business/1476342419.png** ) [1] => Array ( [id] => 8 [collection_id] => 1 [prize_num] => 2 [prize_name] => 全单8折 [total] => 20,**[url_img]=> /upload/business/1476348963.jpg**)

问题已解决

<code>先跑第一个循环,在里面跑第二个循环,去第二个数组找符合条件的item    foreach ($shopPrizeName as $key => $value) {               foreach ($shopPImagesName as $k => $v) {                   if($value['id'] == $v['pid'])                   {                       $value['img_url']    =    $v['img_url'];                   }               }               $shopData[]    =    $value;           }           print_r($shopData);</code>

看到你自己解决了, 再给你个方法

<code>/** * 从多维数组中抽取一列'img_url'组成新数组, 并使用多维数组中的id作为key * 当然你也可以不用array_column自己通过foreach拼接这个数组 */$idImgMap = array_column($shopImageName, 'img_url', 'id'); foreach ($shopPrizeName as &$value) {    $value['img_url'] = $idImgMap[$value['id']];}</code>

这个实现的算法复杂度是 2O(n), 你的是O(n^2), 所以这个性能会更好一点


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【已解决】php 数组合并的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址