php foreach 遍歷陣列問題
PHP中文网
PHP中文网 2017-05-16 13:03:11
0
6
606

如圖怎麼讓order_id 裡面數字相同的只循環輸出一次

業務是這樣的 這個表記錄的是一個訂單與產品的關聯 order_id是訂單id
因此表中記錄了 2個815說明是 同一個訂單 他們擁有同一個訂單id

那麼問題來了 再展示 訂單清單的時候怎麼把 order_id相同的合併成一個輸出尼

上圖是把 order_id 相同的分開輸出展示了 怎麼合併尼

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(6)
小葫芦
$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
        )

)
左手右手慢动作

資料庫取的時候去重

phpcn_u1582

選擇 dinstinct(order_id)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板