Heim > Fragen und Antworten > Hauptteil
如图怎么让order_id 里面数字相同的只循环输出一次
业务是这样的 这个表记录的是一个订单与产品的关联 order_id是订单id
因此表中记录了 2个815说明是 同一个订单 他们拥有同一个订单id
那么问题来了 再展示 订单列表的时候怎么把 order_id相同的合并成一个输出尼
上图是把 order_id 相同的分开输出展示了 怎么合并尼
高洛峰2017-05-16 13:05:11
$user_orders = 你获取的数据库数据;
$order_array = array();
foreach($user_orders as $value){
$order_array[$value['order_id']][] = something;//一些你想放进去的数据
}
return $order_array;
根据订单ID输出数组,直接就合并了相同的啊(有什么不对的请指教)
高洛峰2017-05-16 13:05:11
表结构有问题,一般是有一个订单表 再一个订单商品表 你现在的表结构可以先查询group by order_id 然后foreach order_id 再循环查询这个order_id里面的所有商品
某草草2017-05-16 13:05:11
这应该是你想要的结果,处理过再遍历。
$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
)
)