最近在写一个电子商务的网站,在做购物车的时候才发现php里面没有map这种数据结构,我们不能简单的通过一个hashmap来实现购物车,于是我想到到数组,通过数组的值的格式化来进行编写。 也就是说,我们是通过循环数组的值,通过拆分值来判断数据是不是重复,比如我现在浏览的商品的id是4,添加的数量是3,我就在数组里面存放4-3,以后如果当遇到是id是4的时候,我们只是需要时改变数组里面这个位置的数值,如果id在数组里面拆分比较都不存在,则往数组里面添加数据。删除购物车制定id 的商品也是循环数组,这个值, 使用 unset()来释放这个值。 具体的实现 代码 : <?php session_start(); if($_SESSION['carts']==]]){ $carts=array(); array_push($carts, [0-0″); $_SESSION['carts']=$carts; } $method=$_GET['method']; if($method==]add]){ $productId=$_GET['productid']; $number=$_GET['number']; $carts=$_SESSION['carts']; $flag=]false]; for($i=0;$i<sizeof($carts);$i++){ $pn=$carts[$i]; $pns=split([-], $pn); if($pns[0]==$productId){ $carts[$i]=$productId.]-].$number; $flag=]true]; $location=$i; } } if($flag==]true]){ $carts[$location]=$productId.]-].$number; }else{ array_push($carts, $productId.]-].$number); } $_SESSION['carts']=$carts; } if($method==]delete]){ $productId=$_GET['productid']; $carts=$_SESSION['carts']; for($i=0;$i<sizeof($carts);$i++){ $pn=$carts[$i]; $pns=split([-], $pn); if($pns[0]==$productId){ unset($carts[$i]); } } $_SESSION['carts']=$carts; } ?>
使用php来实现购物车代码