如圖怎麼讓order_id 裡面數字相同的只循環輸出一次
業務是這樣的 這個表記錄的是一個訂單與產品的關聯 order_id是訂單id 因此表中記錄了 2個815說明是 同一個訂單 他們擁有同一個訂單id
那麼問題來了 再展示 訂單清單的時候怎麼把 order_id相同的合併成一個輸出尼
上圖是把 order_id 相同的分開輸出展示了 怎麼合併尼
认证高级PHP讲师
$user_orders = 你获取的数据库数据; $order_array = array(); foreach($user_orders as $value){ $order_array[$value['order_id']][] = something;//一些你想放进去的数据 } return $order_array;
根據訂單ID輸出數組,直接合併了相同的啊(有什麼不對的請指教)
這個跟你foreach循環沒什麼關係,跟你渲染頁面的邏輯有關係。
例如:發現前面已經有相同訂單號碼的時候,不再顯示訂單號碼就ok了
表結構有問題,通常是有訂單表 再一個訂單商品表 你現在的表結構可以先查詢group by order_id 然後foreach order_id 再循環查詢這個order_id裡面的所有商品
這應該是你想要的結果,處理過再遍歷。
$arr = array( array('pro_id'=>1,'order_id'=>1), array('pro_id'=>2,'order_id'=>1), array('pro_id'=>3,'order_id'=>2), array('pro_id'=>4,'order_id'=>3), array('pro_id'=>5,'order_id'=>4), ); $arr = array_column($arr,null,'order_id'); print_r($arr);die; //打印结果如下 Array ( [1] => Array ( [pro_id] => 2 [order_id] => 1 ) [2] => Array ( [pro_id] => 3 [order_id] => 2 ) [3] => Array ( [pro_id] => 4 [order_id] => 3 ) [4] => Array ( [pro_id] => 5 [order_id] => 4 ) )
資料庫取的時候去重
選擇 dinstinct(order_id)
根據訂單ID輸出數組,直接合併了相同的啊(有什麼不對的請指教)
這個跟你foreach循環沒什麼關係,跟你渲染頁面的邏輯有關係。
例如:發現前面已經有相同訂單號碼的時候,不再顯示訂單號碼就ok了
表結構有問題,通常是有訂單表 再一個訂單商品表 你現在的表結構可以先查詢group by order_id 然後foreach order_id 再循環查詢這個order_id裡面的所有商品
這應該是你想要的結果,處理過再遍歷。
資料庫取的時候去重
選擇 dinstinct(order_id)