2012-02-10 33 views
6

Bir değişkene dayalı olarak Ay veya Yıl olarak ayırmak istediğim bir tarih dizisi döndüren bir Array sahibim. Geçerli diziAy veya Yıl bazında Tarihlerin Bölünmüş Ayrımı

Örnek:

birlikte "yaşında" ya da "Ay" a "Ay" google grafik veya "yıl" görünümü, ayrı Bu dizi kırmak için gereken ve grubu üretmek üzere
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" 

} 

Değişken olacak bir kullanıcı tercihine göre.

Ben iade gerek ne

Örnek eğer "Yıl Görünümü" o ses dizidir, ama her dizi için açıklama bir "foreach" yapabilmek gerekiyorsa

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" 

} 

} 

Değil% 100 emin tarihler kümesini ekleyebilmem için tüm değerleri topladım (tek ihtiyacım olan şey, değeri almak için tarihe aittir) ve bir toplam değeri ve gruplandırıldığından beri hep aynı olacak olan yıla geri döneceğim ve sadece patlayacak foreach ifadesindeki son dizinin yılı.

Burada aynı beklenen bir sonuçtur ama "Ay" görünümü modunda

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" 

} 

} 

herhangi bir yardım büyük takdir! Her şeyi sağlam tutarken bir çözüm bulamıyorum.

cevap

11

Böyle bir şey mi var?

$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); 
İlgili konular