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

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

PHP 按 3 個字段對 PDO 或 JSON 結果進行分組并輸出

PHP 按 3 個字段對 PDO 或 JSON 結果進行分組并輸出

PHP
嚕嚕噠 2023-11-03 16:01:33
我正在嘗試按 3 個字段 Delivery_date、van_no 和 drop_no 將結果分組到一個數組中,這是我到目前為止所擁有的:// Gets all orders and sorts by delivery date, van and drop number    $getorders = $conn->prepare("SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id INNER JOIN addresses on orders.address_id = addresses.address_id ORDER BY delivery_date, van_no, drop_no");    $getorders->execute();    $result = $getorders->fetchAll(\PDO::FETCH_ASSOC);        var_dump($result);這給了我這樣的輸出:array (size=6)  0 =>     array (size=8)      'orders_id' => string '6' (length=1)      'customer_id' => string '1' (length=1)      'address_id' => string '1' (length=1)      'van_no' => string '1' (length=1)      'drop_no' => string '0' (length=1)      'delivery_date' => string '2020-08-25' (length=10)      'customer_name' => string 'One' (length=3)      'address_postcode' => string 'b1' (length=2)  1 =>     array (size=8)      'orders_id' => string '1' (length=1)      'customer_id' => string '1' (length=1)      'address_id' => string '1' (length=1)      'van_no' => string '1' (length=1)      'drop_no' => string '1' (length=1)      'delivery_date' => string '2020-08-25' (length=10)      'customer_name' => string 'One' (length=3)      'address_postcode' => string 'b1' (length=2)  2 =>     array (size=8)      'orders_id' => string '3' (length=1)      'customer_id' => string '2' (length=1)      'address_id' => string '2' (length=1)      'van_no' => string '1' (length=1)      'drop_no' => string '2' (length=1)      'delivery_date' => string '2020-08-25' (length=10)      'customer_name' => string 'Two' (length=3)      'address_postcode' => string 'b2' (length=2)如果我將其更改為 \PDO::FETCH_GROUP ,它似乎只是將每個數組的每個字段加倍,如果我在查詢中使用 GROUP BY ,它只會為每個字段提供一個結果。我試過了: foreach($data->delivery_date as $values) {      echo $values->van_no . "\n"; }但請注意:嘗試獲取非對象的屬性“delivery_date”,我嘗試編碼為 JSON,但陷入困境并嘗試分組?;旧衔椰F在完全迷失了,我在谷歌上搜索的有關 PDO 數組或 JSON 數組分組的所有內容最終都沒有執行任何操作或拋出如上所述的錯誤。
查看完整描述

1 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

輸出...


"delivery_date": "2020-08-25"

    {

無法實現,因此此代碼將創建輸出,其中包含送貨和貨車列表......


$output = [];

while( $result = $getorders->fetch(\PDO::FETCH_ASSOC))  {

    if ( !isset($output[$result['delivery_date']]) )    {

        $output[$result['delivery_date']]['date'] = $result['delivery_date'];

    }

    if ( !isset($output[$result['delivery_date']][$result['van_no']]) ) {

        $output[$result['delivery_date']][$result['van_no']]['van'] 

            = $result['van_no'];

    }

    $output[$result['delivery_date']]

            [$result['van_no']][] = $result;

}

echo json_encode(array_values($output), JSON_PRETTY_PRINT);

這會給你一些類似...


[

    {

        "date": "2020-08-25",

        "1": {

            "van": 1,

            "0": {

                "delivery_date": "2020-08-25",

                "van_no": 1,


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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