我正在创建一个购物车。仅限会话变量。我想要一些简单的东西,没有数据库,它只适用于初始系统(后来可能使用数据库和登录)
我单击一个产品并使用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
);
对于打印,我使用:
$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
答案 0 :(得分:1)
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);
第一个print_r的输出:
Array
(
[key1] => orange
[key2] => banana
[key4] => orange
[key5] => lemon
)
输出第二个print_r:
Array
(
[key1] => orange
[key2] => banana
[key5] => lemon
)