亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在php中創建后將信息插入多維數組

在php中創建后將信息插入多維數組

PHP
拉風的咖菲貓 2022-12-23 09:44:45
我在另一篇關于如何從 SQL 返回的記錄創建多維數組的帖子中發布了這個,因為在聽到一些建議后我返回了重復的信息我來到這個解決方案它返回了我需要的但沒有返回所有應該的信息子數組內部。我從數據庫返回了以下行Array(    [0] => Array        (        [iSaleID] => 5027347        [userID] => 123        [qty] => 1.0        [price] => 20.00        [item] => Cheese    )[1] => Array    (        [iSaleID] => 5027347        [userID] => 123        [qty] => 2.0        [price] => 10.00        [item] => Milk    )我想實現這一點: Array    (    [0] => Array        (            [iSaleID] => 5027347            [userID] => 123            [items] => Array (                  [0] => Array                      (                        [description] => Cheese                        [qty] => 1.0                        [price] => 20.00                      )                  [1] => Array                      (                        [description] => Milk                        [qty] => 2.0                        [price] => 10.00                      )                  )             )        )...不確定我的括號是否正確,但我試圖創建它,所以我執行了以下操作:    $sql = "storedProcedure";    $query= $con->query($sql);    $results =  $query->fetchAll(PDO::FETCH_ASSOC);    $orderCnt = 0;    $groupOrders = array();    $lastSaleID = null;    if(count($results) > 0){        foreach($results as $order){            if($order['iSaleID'] != $lastSaleID ){                $groupOrders[$orderCnt]['id'] = $order['iSaleID'];                $groupOrders[$orderCnt]['userID'] = $order['userID'];                $groupOrders[$orderCnt]['items'][] = array('desc' => $order['desc'], 'qty' => $order['qty'] );                $orderCnt++;                $lastSaleID = $order['iSaleID'];            }        }    }這將返回 saleID,每個客戶只返回一次用戶 ID(這是我想要的),但只返回他們訂購的第一件商品。我認為這是因為因為 saleID 等于 $lastSaleID 那么它會跳過具有相同銷售 ID 的其余行,但是我嘗試將$groupOrders[$orderCnt]['items'][] = array('desc' => $order['desc'], 'qty' => $order['qty'] );其放在 IF 語句之外,但這不起作用。有什么建議嗎?
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

這應該工作。必須更改數組中的一些變量名稱,因為您的示例數據不適合代碼示例中的變量:


        $results = [

            [

                'iSaleId' => 5027347,

                'userId' => 123,

                'qty' => 1.0,

                'price' => 20.00,

                'item' => 'Cheese',

            ],

            [

                'iSaleId' => 5027347,

                'userId' => 123,

                'qty' => 2.0,

                'price' => 10.00,

                'item' => 'Milk',

            ],

        ];


        $orderCnt = 0;

        $groupOrders = [];

        if(count($results) > 0) {

            foreach($results as $order){

                if (!isset($groupOrders[$order['iSaleId']])) {

                    $groupOrders[$order['iSaleId']] = [

                        'id' => $order['iSaleId'],

                        'userId' => $order['userId'],

                        'items' => [],

                    ];

                    $orderCnt++;

                }

                $groupOrders[$order['iSaleId']]['items'][] = [

                    'desc' => $order['item'],

                    'qty' => $order['qty'],

                ];

            }

        }


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 91 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號