Heim > Artikel > Backend-Entwicklung > [Gelöst] Problem beim Zusammenführen von PHP-Arrays
Aufgetretene Probleme:
Derzeit gibt es zwei Arrays. Es ist bekannt, dass in den beiden Arrays die ID in Array 1 der PID in Array 2 entspricht. Das Problem besteht darin, die img_url in Array 2 in Go zusammenzuführen zur entsprechenden ID in Array 1.
Endlich, was erreicht werden muss:
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**)
Problem gelöst
<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>
Aufgetretene Probleme:
Derzeit gibt es zwei Arrays. Es ist bekannt, dass in den beiden Arrays die ID in Array 1 der PID in Array 2 entspricht. Das Problem besteht darin, die img_url in Array 2 in Go zusammenzuführen zur entsprechenden ID in Array 1.
Endlich, was erreicht werden muss:
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**)
Problem gelöst
<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>
Da Sie es selbst gelöst haben, gebe ich Ihnen eine andere Methode
<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>
Die Algorithmuskomplexität dieser Implementierung beträgt 2O(n) und Ihre ist O(n^2), sodass die Leistung besser ist