2014-02-07 50 views
0

我的數據在下面的表格如何從陣列得到一個月基本數據在PHP

陣列 (

[0] => Array 
    (
     [event_id] => 2042632 
     [event_name] => Georgia Tech Yellow Jackets vs. North Carolina Tar Heels 
     [event_payment] => 156 
     [payment_status] => 1 
     [event_date] => 2014-01-29 
    ) 

[1] => Array 
    (
     [event_id] => 2042632 
     [event_name] => Georgia Tech Yellow Jackets vs. North Carolina Tar Heels 
     [event_payment] => 89 
     [payment_status] => 1 
     [event_date] => 2014-01-29 
    ) 

[2] => Array 
    (
     [event_id] => 2042632 
     [event_name] => Georgia Tech Yellow Jackets vs. North Carolina Tar Heels 
     [event_payment] => 772 
     [payment_status] => 1 
     [event_date] => 2014-01-29 
    ) 

[3] => Array 
    (
     [event_id] => 2042633 
     [event_name] => Georgia Tech Yellow Jackets vs. North Carolina Tar Heels 
     [event_payment] => 256 
     [payment_status] => 0 
     [event_date] => 2013-12-29 
    ) 

) 

所有我現在想從這個越來越之後,顯示在下面的格式數據數組:

January 

Event-name, payment, status 
georgia.. 1234, 0 
georgia.. 3456, 1 

December 

Event-name, payment, status 
georgia.. 1234, 0 
georgia.. 3456, 1 

等等等等

請GUI。德我該怎麼做..

回答

2

嘗試

$result = array(); 
foreach($arr as $ar){ 
$date = DateTime::createFromFormat("Y-m-d", $ar['event_date']); 
$month = $date->format('F'); 
$year = $date->format('Y'); 
$result[$year][$month][] = $ar; 
} 

觀看演示here

+0

謝謝@Nouphal – saadk

0

在這裏,我只建議如何按日期排序數組。我希望你能自己完成剩下的工作。

function cmp($a, $b) { 
    return (new DateTime($a['event_date']))->getTimestamp() < (new DateTime($b['event_date']))->getTimestamp()? -1 : 1; 
} 
usort($array, 'cmp'); 

$curr_month = 0; 
foreach ($array as $elem) { 
    // output elements of array based on month 
    // ... 
} 
2
$res= array(); 
foreach($arr as $key => $val) // $arr is your actual array 
{ 
    $month = date('F-Y', strtotime($val['event_date'])); 
    $res[$month][] = $val; 
} 

現在,你得到的將導致作爲

[January-2014] = array(a1,a2...) 
[December-2014] = array(a1,a2...) 
+1

此代碼不會因爲數組中的日期屬於正常工作到不同的年份(2013年,2014年)。 – hindmost

+0

已更新的答案。請檢查 –