Ciao, non ho ben capito se vuoi eliminare i dati solo dall'array o anche dal database. Comincio a scriverti la soluzione solo per il vettore (script testato e funzionante ).
Se usi la data nel formato YYYY-MM, ti facilita molto perché puoi usare la funzione strcmp(): in tal caso l'ordine alfabetico corrisponde all'ordine cronologico! E poi è comodo anche per come l'ho implementato qui sotto
PS: Ti ho scritto anche la conversione da MM-YYYY a YYYY-MM e viceversa (vah che bravo che sono )
Codice PHP:
// Conversione MM-YYYY => YYYY-MM
foreach(array_keys($array) as $date_mY){
$date_Ym = implode('-',array_reverse(explode('-',$date_mY)));
$array[$date_Ym] = $array[$date_mY];
unset($array[$date_mY]);
}
$y0 = date('Y')-1;
$m0 = date('m');
foreach(array_keys($array) as $key)
if(strcmp($key, "$y0-$m0") <= 0) // mese <= 2011-12
unset($array[$key]);
$y0 .= '000'; // $y0 = '2011000';
for($i=0; $i<12; $i++){
if(!($m0 = $m0%12))
$y0 += 1000;
$m0++;
$m = $y0 + $m0; // per $i = 1 => $m = '2012001'
$m = (string)$m;
$m[4] = '-'; // per $i = 1 => $m = '2012-01'
if(!isset($array[$m]))
$array[$m] = 0;
}
/* Verifica */
ksort($array);
// Conversione YYYY-MM => MM-YYYY
foreach(array_keys($array) as $date_Ym){
$date_mY = implode('-',array_reverse(explode('-',$date_Ym)));
$array[$date_mY] = $array[$date_Ym];
unset($array[$date_Ym]);
}
print_r($array);
/***********/
Buona domenica!