2013-06-18 37 views
1

我正在創建購物車。只有會話變量。我想簡單的東西,沒有數據庫,它只是在初始系統(後來,也許使用的數據庫和登錄)

我在一個產品單擊並使用URL在會話中添加變量

爲例 產品:橙色

發送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 

    ); 

對於打印,我用:

foreach ($_SESSION['SHOPPING_CART'] as $itemNumber => $item) { 
echo $item['type']; 
echo $item['name']; 

}

但我的問題是,當我打印我看到這樣的事情: 果粒橙 水果蘋果 Fruir香蕉

有人可以告訴我怎麼只出現一次「水果」。我如何比較已經重複?

的例子,我想: 水果 橙色 蘋果 香蕉

回答

0
$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']; 
    } 
+0

可以只打印一個名字嗎?不要重複像水果這樣的名字:香蕉,香蕉,香蕉 – user2428731

0

你需要另一個層次添加到購物車,例如

$_SESSION['SHOPPING_CART'][$_GET['tipo']][$_GET['add']] 

所以你會最終有一個嵌套的陣列結構:

SHOPPING_CART -> fruit -> orange 
       -> fruit -> apple 
       -> vegetable -> pizza 
0

太好了!

但是如果我有問題。如果我添加一個水果,那麼一個食物,然後一個水果:

Print: 
    Fruit: 
     Banana 
     Banana 
    Food: 
     Meat x 
    Fruit: 
     Apple 

但是,有可能不重複「香蕉」香蕉?

Print: 
    Fruit: 
     Banana 
     Apple 
    Food: 
     Meat x