簡體   English   中英

Laravel-如何將多個數組收集為單個數組

[英]Laravel - How to collect multiple array to single one

我已經創建了一個像這樣的集合:

Collection {#651 ▼
  #items: array:3 [▼
    0 => array:3 [▼
      "orderId" => "402457"
      "orderCreated" => DateTime {#656 ▶}
      "foods" => array:2 [▶]
    ]
    1 => array:3 [▼
      "orderId" => "402457"
      "orderCreated" => DateTime {#661 ▶}
      "foods" => array:2 [▶]
    ]
    2 => array:3 [▼
      "orderId" => "402457"
      "orderCreated" => DateTime {#665 ▶}
      "foods" => array:2 [▶]
    ]
  ]
}

我要求實現這樣的收集(使用Laravel收集):

Collection {#651 ▼
  #items: array:3 [▼
    0 => array:3 [▼
      "orderId" => "402457"
      "orderCreated" => DateTime {#656 ▶}
      "foods" => array:6 [▶]
    ]

  ]
}

因為orderId和orderCreated在數組中都相同。 我需要使單個數組收集所有食物的orderId和orderCreated。 有什么建議嗎?

您可以從第一個數據中提取數據,然后將所有食品組合在一起。 例如這樣的:

$new = collect([
    'orderId' => $old->first()->orderId,
    'orderCreated' => $old->first()->orderCreated,
    'foods' => $old->pluck('foods')->flatten(1),
]);

確切的實現將取決於您如何構建初始集合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM