У меня есть массив заказов. Теперь я хочу сгруппировать элементы массива в соответствии с их order_id
. Затем я сделал как показано ниже ...
$CompleteOrders = [];
$OrderCount = 0;
foreach($OrdersWithProductDetails as $OrdersWithProductDetail) {
if(empty($CompleteOrders)) {
$CompleteOrders[$OrderCount][$OrderCount] = $OrdersWithProductDetail;
} else {
for($i = 0; $i < count($CompleteOrders); $i++) {
if(isset($CompleteOrders[$i][$i])) {
if($CompleteOrders[$i][$i]->order_id == $OrdersWithProductDetail->order_id) {
$CompleteOrders[$i][$OrderCount+1] = $OrdersWithProductDetail;
//print_r($CompleteOrders);
$OrderCount++;
} else {
$CompleteOrders[$OrderCount+1][0] = $OrdersWithProductDetail;
// print_r($CompleteOrders);
$OrderCount++;
}
}
}
// break;
}
}
dd($CompleteOrders);
Но, когда я печатаю массив $CompleteOrders
, в первом элементе (0) есть все детали заказа, которые принадлежат order_id
93. но , после этого элементы имеют разные ключи (3 и 4), даже если они имеют одинаковые order_id
, как показано ниже.
array:3 [▼
0 => array:3 [▶]
3 => array:1 [▶]
4 => array:1 [▼
0 => {#1268 ▼
+"id": 102
+"size": "30"
+"order_quantity": "1"
+"price": "798"
+"created_at": "2020-06-16 19:24:00"
+"updated_at": "2020-06-16 19:24:00"
+"order_id": "94"
+"owi_id": "255"
+"item_id": "36"
+"item_name": "Acc One"
+"description": "Test"
+"quantity": null
+"main_fileimg": "1 (1).jpg"
+"main_filepath": "assets/img/product/accessories/"
+"main_category": "Accessories"
+"category": "Denim"
+"final_total_amount": "1593"
+"cus_name": "Customer Name"
+"tel_no": "123456789"
+"email": "email@gmail.com"
+"address_line_one": "Earth Rd"
+"address_line_two": "Neptune"
+"city": "Sun"
}
]
]
Я хочу создать массив, как показано ниже.
$Orders =
0 => [
0 => "OrderId94"
"Item"
1 => "OrderId94"
"Item"
],
1 => [
0 => "OrderId94"
"Item"
1 => "OrderId94"
"Item"
]
** РЕДАКТИРОВАТЬ **
$OrdersWithProductDetails = DB::table('order_id_with_owi_ids')
->join('orders_with_items','orders_with_items.id','order_id_with_owi_ids.owi_id')
->join('item_id_with_owi_ids','item_id_with_owi_ids.owi_id','orders_with_items.id')
->join('products','products.item_id','item_id_with_owi_ids.item_id')
->join('item_with_main_categories','item_with_main_categories.item_id','products.item_id')
->select('orders_with_items.*', 'order_id_with_owi_ids.*', 'products.*')
->get();
Как я могу это сделать?