84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
如图怎么让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 ) )
数据库取的时候去重
select dinstinct(order_id)
根据订单ID输出数组,直接就合并了相同的啊(有什么不对的请指教)
这个和你foreach循环没什么关系,和你渲染页面的逻辑有关系。
比如:发现前面已经有相同订单号的时候,不再显示订单号就ok了
表结构有问题,一般是有一个订单表 再一个订单商品表 你现在的表结构可以先查询group by order_id 然后foreach order_id 再循环查询这个order_id里面的所有商品
这应该是你想要的结果,处理过再遍历。
数据库取的时候去重
select dinstinct(order_id)