credo che non vada bene la funzione my_array_delete, ho provato a fare questo:
codice:
if($orari="09:00-13:00") {
	for($i=0;$i < 4;$i++){
		$est=$estensione; 	
		$fasce_orarie[$key[$i]]=$est;
		$flag="occupato";	
		$canc=$key[$i];	// contiene gli orari da eliminare
		if($canc!=""){
				$libero=my_array_delete($fasce_orarie,$canc); 
		}				
	}		
}
ma i valori presenti in $canc non vengono cancellati.. ho provato anche ad usare unset ma niente..