As I don’t know how the original array is storing its dates, I’ve written a short snippet presuming its word format or 02-03-2011 (something other than timestamp).
$myarray = array(); //Original array (yours will be full of dates)
$dategroups = array();
foreach($myarray as $date)
$dategroups[$date] = (isset($dategroups[$date])) ? $dategroups[$date]+1 : 1;
This will fill the array $dategroups with a key for each date, the value being how many occurences it found.
If there are some dates that are the same but in a different format (e.g. 02/03/2011 and 2nd March 2011), you may want to replace $dategroups[$date] with $dategroups[strtotime($date)] - but bear in mind that the keys of the elements in the array will be unix timestamps (e.g. 1300474233) rather than the legible formats written above (use date(“d-m-Y”,$timestamp) to convert back).
Let me know how you get on and whether or not this was of any use to you!