2012-02-10 44 views
6

Tôi có một Mảng trả về một chuỗi ngày yêu cầu mà tôi muốn chia nhỏ theo Tháng hoặc Năm dựa trên một biến.Phân chia các Mảng Ngày dựa trên Tháng hoặc Năm

Ví dụ về mảng hiện tại:

array(4) { 

[0]=> string(10) "2012-02-01" 

[1]=> string(10) "2012-02-02" 

[2]=> string(10) "2011-02-03" 

[3]=> string(10) "2011-03-04" 

[4]=> string(10) "2011-04-05" 

} 

Để tạo ra một biểu đồ google trong "Tháng" hoặc "Năm" xem tôi cần phải phá vỡ mảng này ngoài và nhóm lại với nhau là "Năm" hoặc "tháng" dựa trên tùy chọn người dùng sẽ có trong biến.

Ví dụ về những gì tôi cần phải trả lại nếu trong "Năm View"

array(2) { 

[0]=> Array(2) { 

     [0]=> string(10) "2012-02-01" 

     [1]=> string(10) "2012-02-02" 

} 

[1]=> Array(3) { 

     [0]=> string(10) "2011-02-03" 

     [1]=> string(10) "2011-03-14" 

     [2]=> string(10) "2011-04-18" 

} 

} 

Không phải 100% chắc chắn nếu đó là một mảng âm thanh, nhưng tôi cần để có thể làm một "foreach" tuyên bố cho từng mảng thiết lập các ngày để tôi có thể thêm tất cả các giá trị (tất cả những gì tôi cần là ngày để hàm nhận giá trị) và trả lại một giá trị tổng cộng và năm sẽ giống nhau vì chúng được nhóm lại và tôi sẽ chỉ phát nổ năm của mảng cuối cùng trong báo cáo foreach.

Đây là kết quả dự kiến ​​tương tự nhưng trong "Tháng" chế độ xem

array(3) { 

[0]=> Array(3) { 

     [0]=> string(10) "2012-02-01" 

     [1]=> string(10) "2012-02-02" 

     [2]=> string(10) "2011-02-03" 

} 

[1]=> Array(1) { 



     [1]=> string(10) "2011-03-14" 

} 

[2]=> Array(1) { 

     [1]=> string(10) "2011-04-18" 

} 

} 

Bất kỳ trợ giúp sẽ được đánh giá cao! Tôi dường như không thể tìm ra giải pháp trong khi vẫn giữ nguyên mọi thứ.

Trả lời

11

Một cái gì đó như thế này?

$years = Array(); 
$months = Array(); 
foreach($dates as $d) { 
    list($y,$m) = explode("-",$d); 
    $years[$y][] = $d; 
    $months[$y."-".$m][] = $d; 
} 
$years = array_values($years); 
$months = array_values($months); 

var_dump($years,$months); 
Các vấn đề liên quan