<?php
session_start();$shop = $_SESSION['shop'];
if(!$shop)
{
$shop = array();
}if($_POST['Submit'])
{
$good_id = $_POST['good_id'];
$good_num = $_POST['good_num'];
$arr = array('good_id'=>$good_id,'good_num'=>$good_num);
if($shop){
foreach($shop as $key => $val){
if($good_id==$val['good_id']){
$id = $val['good_id'];
$num = $val['good_num'];
$totalNum = $num + $good_num;
$arr = array('good_id'=>$id,'good_num'=>$totalNum);
array_push($shop, $arr);
unset($val);
}else{
array_push($shop, $arr);
}
}
}else{
array_push($shop, $arr);
}
}$_SESSION['shop'] = $shop;
var_dump($shop);?>
<form name="Form1" method="post" action="">
<input type="text" name="good_id">
<input type="text" name="good_num">
<input type="submit" name="Submit" value="提交">
</form>
我写的一个东东,前两次提交,输出都是正常的,但是第三次以及以后提交提示错误,错误代码是
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 43 bytes) in F:\AppServ\www\test\Cart.php on line 24
session_start();$shop = $_SESSION['shop'];
if(!$shop)
{
$shop = array();
}if($_POST['Submit'])
{
$good_id = $_POST['good_id'];
$good_num = $_POST['good_num'];
$arr = array('good_id'=>$good_id,'good_num'=>$good_num);
if($shop){
foreach($shop as $key => $val){
if($good_id==$val['good_id']){
$id = $val['good_id'];
$num = $val['good_num'];
$totalNum = $num + $good_num;
$arr = array('good_id'=>$id,'good_num'=>$totalNum);
array_push($shop, $arr);
unset($val);
}else{
array_push($shop, $arr);
}
}
}else{
array_push($shop, $arr);
}
}$_SESSION['shop'] = $shop;
var_dump($shop);?>
<form name="Form1" method="post" action="">
<input type="text" name="good_id">
<input type="text" name="good_num">
<input type="submit" name="Submit" value="提交">
</form>
我写的一个东东,前两次提交,输出都是正常的,但是第三次以及以后提交提示错误,错误代码是
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 43 bytes) in F:\AppServ\www\test\Cart.php on line 24
改成
unset($shop[$key]);
break;
帮你精简了一下,,,你试试<?php
session_start();$shop = $_SESSION['shop'];
if(!$shop)
{
$shop = array();
}if($_POST['Submit'])
{
if($shop)
{
foreach($shop as $key => $val)
{
if($_POST['good_id']==$val['good_id'])
{
$shop[$_POST['good_id']]=$val['good_num']+$_POST['good_num'];
}
else
{
$shop[$_POST['good_id']]=$_POST['good_num'];
}
}
}
else
{
$shop[$_POST['good_id']]=$_POST['good_num'];
}
}$_SESSION['shop'] = $shop;
var_dump($shop);?>
<form name="Form1" method="post" action="">
<input type="text" name="good_id">
<input type="text" name="good_num">
<input type="submit" name="Submit" value="提交">
</form>