codice:<?php error_reporting (E_ALL); session_start(); function esiste($id_prodotto){ $carrello=$_SESSION['prodotti']; $i=0; $flag = false; while ((count($carrello) > 0) && !$flag){ $temp=array_shift($carrello); if ($temp['idprodotto'] == $id_prodotto) $flag = true; $i++; } $flag=array('esiste'=>$flag,'pos'=>$i-1); return $flag; } function Carrello($id_prodotto,$quantita) { if (array_key_exists('prodotti',$_SESSION)){ $flag=esiste($id_prodotto); if ($flag['esiste']){ $_SESSION['prodotti'][$flag['pos']]['quantità'] +=$quantita; echo "ID PRODOTTO ESISTENTE, QUANTITA' AGGIUNTA"; } else { $temp=array('idprodotto'=>$id_prodotto,'quantità'=>$quantita); array_push($_SESSION['prodotti'],$temp); } } else { $_SESSION['prodotti'][0]=array('idprodotto'=>$id_prodotto,'quantità'=>$quantita); } } unset($_SESSION['prodotti']); Carrello(1,2); Carrello(2,4); Carrello(3,4); Carrello(1,2); Carrello(3,4); //unset($_SESSION['prodotti'][1]); /*--------------------------------------------------------- Report Variabili -----------------------------------------------------------*/ echo '<hr>'; print '<pre>'; print_r($_SESSION); print '</pre>'; echo '<hr>'; ?>