php 按一列对对象数组进行分组,并对每组中的另一列求和

yshpjwxd  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(147)

合并两个对象数组后,我得到一个结构如下的数组。我想将具有相同ID的对象分组并添加到它们的数量

  1. [
  2. {
  3. id : 1
  4. nome : T.SHIRT
  5. quantita : 2
  6. },
  7. {
  8. id : 2
  9. nome : Sweatshirt
  10. quantita : 4
  11. },
  12. {
  13. id : 1
  14. nome : T.SHIRT
  15. quantita : 4
  16. }
  17. ]

我想得到一个这样的数组。

  1. [
  2. {
  3. id : 1
  4. nome : T.SHIRT
  5. quantita : 6
  6. },
  7. {
  8. id : 2
  9. nome : Sweatshirt
  10. quantita : 4
  11. },
  12. ]

我该怎么做?

oymdgrw7

oymdgrw71#

下面的逻辑可能会帮助你:$store将包含每个“id”具有累积“quantita”的重构数组。

  1. <?php
  2. $arr = [
  3. (object)['id' => 1, 'nome' => 'T.SHIRT', 'quantita' => 2,],
  4. (object)['id' => 2, 'nome' => 'Sweatshirt', 'quantita' => 4,],
  5. (object)['id' => 1, 'nome' => 'T.SHIRT', 'quantita' => 4,],
  6. ];
  7. $store = [];
  8. foreach($arr as $record) {
  9. if(isset($store[$record->id])) {
  10. $store[$record->id]->quantita += $record->quantita;
  11. } else $store[$record->id] = $record;
  12. }

工作demo

相关问题