[英]How Can I print correctly and compare $SESSION?
我正在創建一個購物車。 僅具有會話變量。 我想要簡單的東西,沒有數據庫,僅用於初始系統(以后可能使用數據庫和登錄名)
我單擊產品並使用URL添加SESSION變量
示例產品:橙色
發送的網址
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香蕉
有人可以告訴我如何只出現一次“水果”。 我如何比較已經是重復的?
我想要的示例:水果橙蘋果香蕉
$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'];
}
您需要向購物車添加另一個級別,例如
$_SESSION['SHOPPING_CART'][$_GET['tipo']][$_GET['add']]
因此,您最終將獲得嵌套的數組結構:
SHOPPING_CART -> fruit -> orange
-> fruit -> apple
-> vegetable -> pizza
$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'];
}
大!
但是,如果我有問題。 如果添加水果,然后添加食物,然后添加水果:
Print:
Fruit:
Banana
Banana
Food:
Meat x
Fruit:
Apple
但是,有可能不重復“香蕉”香蕉嗎?
Print:
Fruit:
Banana
Apple
Food:
Meat x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.