Adesso va meglio. Ad ogni periodo i prezzi vengono associati direttamente. 
Codice PHP:
<?php
// Definisco le date di inizio e di fine di ciascun periodo
$iniz_stagione1 = "2006-09-09";
$fine_stagione1 = "2006-09-20";
$iniz_stagione2 = "2006-09-21";
$fine_stagione2 = "2006-10-10";
$iniz_stagione3 = "2006-10-11";
$fine_stagione3 = "2006-10-20";
$iniz_stagione4 = "2006-10-21";
$fine_stagione4 = "2006-10-31";
// Setto le mie costanti relative ai prezzi stagioniali
define("PREZZO_STAGIONE1",35);
define("PREZZO_STAGIONE2",40);
define("PREZZO_STAGIONE3",45);
define("PREZZO_STAGIONE4",30);
// Passo alla funzione inizio e fine periodo e il prezzo associato.
// Le chiavi saranno le date e i valori i rispettivi prezzi
function crea_Array($da,$a,$prezzo,$arr = ''){
global $arr;
for($i = strtotime($da); $i<=strtotime($a); $i = strtotime("+1 day",$i)) {
$arr[date('Y-m-d',$i)] = $prezzo;
}
return $arr;
}
// Richiamo la funzione per crearmi l'array con tutte le date stagionali
$stagione = crea_Array($iniz_stagione1,$fine_stagione1,PREZZO_STAGIONE1);
$stagione = crea_Array($iniz_stagione2,$fine_stagione2,PREZZO_STAGIONE2);
$stagione = crea_Array($iniz_stagione3,$fine_stagione3,PREZZO_STAGIONE3);
$stagione = crea_Array($iniz_stagione4,$fine_stagione4,PREZZO_STAGIONE4);
echo '<pre>';
print_r($stagione);
echo '</pre>';
// Date inizio e fine abbonamento
$inizio_abb = "2006-09-18";
$fine_abb = "2006-10-12";
// Creo l'array con tutte le date relative al periodo dell'abbonamento
$abbonamento = crea_Array($inizio_abb,$fine_abb,0,$arr =array() );
$i = 0;
foreach($abbonamento as $chiave => $valore) {
$nuovo[$i] = $chiave;
$i++;
}
echo '<pre>';
//print_r($abbonamento);
print_r($nuovo);
echo '</pre>';
function costo_Abbonamento(){
$totale = 0;
global $nuovo,$stagione;
foreach($nuovo as $giorno){
// se il giorno dell'abbonamento corrisponde alla chiave dell'array stagionale aggiungo al totale
// il prezzo corrispondente
if(array_key_exists($giorno,$stagione))
$totale+= $stagione[$giorno];
}
return $totale;
}
echo costo_Abbonamento(); // nell'esempio 995 euro
//18-20 settembre 35 euro * 3 105
//21 settembre-10 ottobre 40 euro * 2 800
// 11-12 ottobre 45 euro * 2 90
// Totale 995
?>