Un errore curioso mi sta facendo impazzire:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 8388608 bytes) in /home/mhd-01/www.pizza-flash.it/htdocs/stuff/sumDoubleItems.ph on line 18
a prescindere dal fatto che 8388608 bytes sono meno di 67108864, e giá per questo non capisco come si possa creare un errore simile, ma il codice che sto eseguendo é veramente molto molto semplice, e non capisco dove sta l'errore. Forse sono stato troppe ore davanti allo schermo e non vedo un ; o un $ mancante....
Ho cercato su google e tra gli altri che ho trovato che avevano il mio stesso problema, non sono riuscito a trovare chi l'abbia risolto, solo conversazioni lunghissime con domande su quante persone navigassero contemporaneamente sui loro forum, o su che versione di software vari stavano utilizzando.
Ho provato a inserire 
ini_set('memory_limit', '16M');
 come da diverse parti si consiglia, ma il risultato é stato ancora piú assurdo:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 32 bytes) in /home/mhd-01/www.pizza-flash.it/htdocs/stuff/sumDoubleItems.ph on line 5
La funzione e la classe presenti in questo file che vi allego servono per smaltire le informazioni ridondanti in un cookie contenente oggetti di un carrello elettronico, salvati nella forma NUMEROx:NUMERO#; dove i due numeri rappresentano quantitá e id dell'oggetto.
Quando un utente scegliesse due volte lo stesso oggetto si produrrebbero due semistringhe riferenti allo stesso id, e con il mio codice sto cercando di sommare le quantitá e riprodurre la stessa stringa di partenza senza ripetizioni di id.
<?php
class order_from_string{
  public function __construct($order_str){
    $temp=explode(":", $order_str);
// le due seguenti espressioni estrapolano ID e QUANTITA dalla stringa del cookie in cui le informazioni sono salvate secondo la forma QUANTITA_1x:ID_1#;QUANTITA_2x:ID_2#;QUANTITA_3x:ID_3#;...ecc
    $this->amount=substr($temp[0],0,(strlen($temp[0])-1));
	$this->id=substr($temp[1],0,(strlen($temp[1])-1));
 }
  public $amount=0;
  public $id=0;
}
function sumDoubleItems($cookie_string){
	ini_set('memory_limit', '16M');        // riga aggiunta senza risultati apparenti
	$returnString="";
	$order_raw=explode(";", $cookie_string);
	$order=Array();
	for($i=0; i<count($order_raw); $i++){
		$order[$i]=new order_from_string($order_raw[$i]);
	}
	for($i=0; $i<count($order); $i++){
		for($j=0; $j<count($order); $j++){
			if($i!=$j && $order[$i]->id==$order[$j]->id){
				$tempAmount=$order[$i]->amount+$order[$j]->amount;
				$order[$i]->amount=$tempAmount;
				unset($order[$j]);
				$order=array_values($order);
			}
		}
	}
	foreach($order as $o)
		$returnString.=$o->amount."x:".$o->id."#;";
	return returnString;
}
?>
grazie dell'attenzione