搜尋

首頁  >  問答  >  主體

php foreach 遍歷陣列問題

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

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

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

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

PHP中文网PHP中文网2789 天前612

全部回覆(6)我來回復

  • 高洛峰

    高洛峰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輸出數組,直接合併了相同的啊(有什麼不對的請指教)

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:11

    這個跟你foreach循環沒什麼關係,跟你渲染頁面的邏輯有關係。

    例如:發現前面已經有相同訂單號碼的時候,不再顯示訂單號碼就ok了

    回覆
    0
  • 高洛峰

    高洛峰2017-05-16 13:05:11

    表結構有問題,通常是有訂單表 再一個訂單商品表 你現在的表結構可以先查詢group by order_id 然後foreach order_id 再循環查詢這個order_id裡面的所有商品

    回覆
    0
  • 某草草

    某草草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
            )
    
    )

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-16 13:05:11

    資料庫取的時候去重

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:05:11

    選擇 dinstinct(order_id)

    回覆
    0
  • 取消回覆