2017-08-11 54 views
-2

我有一個項目數組創建按日期排列。所有項目都包含一個start_date。從現有陣列

基於起始日期我想創建一個新的數組,起始日期爲重點,然後那一天內每個條目開始。

從這個

這樣:

(以JSON例如,原單陣列方式不再與多個條目,每一天)

[ 
     { 
      "Booking_id": "135474", 
      "Start_date": "2017-08-11 09:10:00", 
      "End_date": "2017-08-11 09:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
      "Last_name": "Hatcher" 
     }, 
     { 
      "Booking_id": "133718", 
      "Start_date": "2017-08-11 10:00:00", 
      "End_date": "2017-08-11 10:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
      "Last_name": "Hatcher" 
     }, 
     { 
      "Booking_id": "135514", 
      "Start_date": "2017-08-12 11:00:00", 
      "End_date": "2017-08-12 11:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
       "Last_name": "Hatcher" 
      } 
] 

我想使這個:

{ 
    "2017-08-11" : [ { 
      "Booking_id": "135474", 
      "Start_date": "2017-08-11 09:10:00", 
      "End_date": "2017-08-11 09:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
      "Last_name": "Hatcher" 
     }, 
     { 
      "Booking_id": "133718", 
      "Start_date": "2017-08-11 10:00:00", 
      "End_date": "2017-08-11 10:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
      "Last_name": "Hatcher" 
     } 
], 
"2017-08-12" => , 
     [{ 
      "Booking_id": "135514", 
      "Start_date": "2017-08-12 11:00:00", 
      "End_date": "2017-08-12 11:59:00", 
      "Max_participants": null, 
      "Description": "Schedule Sports Hall 3", 
      "Trainer": "1053", 
      "Memo": null, 
      "Cms_id": null, 
      "Product_id": "85", 
      "First_name": "Teri", 
      "Middle_name": null, 
       "Last_name": "Hatcher" 
      }] 
    } 

我我不確定json是否準確,但我認爲你明白了。我自己嘗試過,但發現了一些性能問題,導致一切都花費太長時間。

+2

添加代碼,以便我們可以提供幫助。 –

+0

@satyampathak我的示例代碼的方式更糟的是我做一個while循環,而END_DATE <$ CURRENT_DATE加1天的循環,然後執行一個查詢得到每天這個信息.... 現在我執行查詢的總天數,我想這是後quicker.There不需要我張貼任何代碼。正確的答案甚至已經posteda lready –

+0

@RoyStijsiger,我已經給了你在最短的鱈魚這個..請檢查下面...謝謝回答 – GYaN

回答

3

這裏是您的解決方案....

$json = '[ 
    { 
     "Booking_id": "135474", 
     "Start_date": "2017-08-11 09:10:00", 
     "End_date": "2017-08-11 09:59:00", 
     "Max_participants": null, 
     "Description": "Schedule Sports Hall 3", 
     "Trainer": "1053", 
     "Memo": null, 
     "Cms_id": null, 
     "Product_id": "85", 
     "First_name": "Teri", 
     "Middle_name": null, 
     "Last_name": "Hatcher" 
    }, 
    { 
     "Booking_id": "133718", 
     "Start_date": "2017-08-11 10:00:00", 
     "End_date": "2017-08-11 10:59:00", 
     "Max_participants": null, 
     "Description": "Schedule Sports Hall 3", 
     "Trainer": "1053", 
     "Memo": null, 
     "Cms_id": null, 
     "Product_id": "85", 
     "First_name": "Teri", 
     "Middle_name": null, 
     "Last_name": "Hatcher" 
    }, 
    { 
     "Booking_id": "135514", 
     "Start_date": "2017-08-12 11:00:00", 
     "End_date": "2017-08-12 11:59:00", 
     "Max_participants": null, 
     "Description": "Schedule Sports Hall 3", 
     "Trainer": "1053", 
     "Memo": null, 
     "Cms_id": null, 
     "Product_id": "85", 
     "First_name": "Teri", 
     "Middle_name": null, 
      "Last_name": "Hatcher" 
     } 
]'; 

$array = json_decode($json,true); 
$new = array(); 
foreach($array as $row){ 
    $new[date('Y-m-d',strtotime($row['Start_date']))][] = $row; 
} 
echo '<pre>'; print_r($new); 

$新的包含要在陣列...