如何解决重复的$_SESSION值,ADD do Cart PHP


How can I resolve repeated $_SESSION values, ADD do Cart PHP?

我正在创建一个购物车。仅使用会话变量。我想要一些简单的东西,没有数据库,它只用于初始系统(稍后可能使用数据库和登录)

我点击产品并使用URL添加SESSION变量

示例产品:橙色

发送的url

site.com/?page=buy&add=Orange&type=fruit

然后。。。

session_start();
//Create 'cart' if it doesn't already exist
if (!isset($_SESSION['SHOPPING_CART'])){ $_SESSION['SHOPPING_CART'] = array(); }
if (isset($_GET['add'])){
//Adding an Item
//Store it in a Array
$ITEM = array(
    //Item name     
    'name' => $_GET['add'],
    'type' => $_GET['tipo'],
    //Item Price
    );

对于打印,我使用:

$itemType = ""; 
foreach ($_SESSION['SHOPPING_CART'] as $itemNumber => $item) {
 if($itemType == $item['type']) {
   // skip...don't print again
 } else { 
    echo $item['type']; 
 }
 echo $item['name']; 
 $itemType = $item['type'];
}

然而,我有一个问题。如果我加了一个水果,然后是一种食物,然后是水果:

打印:

Fruit:
      Banana
      Banana
   Food:
      Meat 
   Fruit:
      Apple

然而,有可能不重复"香蕉"香蕉?

打印:

Fruit:
      Banana
      Apple
   Food:
      Meat x

array_unique--从数组中删除重复值http://php.net/manual/en/function.array-unique.php

示例:

$items = array(
    'key1' => 'orange',
    'key2' => 'banana',
    'key4' => 'orange',
    'key5' => 'lemon',
);
// first print_r
print_r($items);
$items = array_unique($items);
// second print_r
print_r($items);

第一次打印的输出_r:

Array
(
    [key1] => orange
    [key2] => banana
    [key4] => orange
    [key5] => lemon
)

第二次打印的输出_r:

Array
(
    [key1] => orange
    [key2] => banana
    [key5] => lemon
)