您好我正在创建一个基于php cookies的最新产品视图。首先,每当用户查看某些数据时,我将cookie存储如下
//by Creating Manually array
$cookieArr = array("productid"=>$row_category[0],"views"=>1);
setcookie("myshopping", $cookieArr, time() + (8640000 * 30), "/");
以下输出
(
[productid] => 27
[views] => 1
)
现在当用户访问另一个页面作为示例35 number page
时,输出应该像
(
[productid] => 27,35
[views] => 1,1
)
如何添加它不是问题。问题是如果用户再次访问同一页面,我必须提供观点。例如,如果用户再次访问27页,那么arrray应该喜欢。表示不添加数据只是更新视图。
(
[productid] => 27,35
[views] => 2,1
)
我试过
foreach ($cookieArr as $key => $value) {
//Get all products
$allProdcutid = $cookieArr["productid"];
}
//than checking
if(in_array($myproductid, $cookieArr['productid'])){
echo "Avaibality";
}else{
echo "exit";
}
这是为了演示。
答案 0 :(得分:0)
看看多维数组... https://www.w3schools.com/php/php_arrays_multi.asp
您可以像下面那样构建您的cookie数组
(
[products] => [13=>array("views"=>1),27=>array("Views"=>4)]
)
然后您可以在products数组上使用array_key_exists来查找您的产品ID或添加它。
以下是php代码:
if(array_key_exists($myproductid,$cookie['products'])
{
$cookie['products'][$myproductid]['views']++;
}
else
{
$cookie['products'][$myproductid]=array('views'=>1);
}
通过这种方式,您可以稍后将其他属性添加到产品数组中...
答案 1 :(得分:0)
1。 您可以创建如下数组: -
Array(
27=>1,
35=>1
)
这将更容易处理。密钥是productid的,值是他们访问的时间。
2。 或修改您的代码,如下所示: -
<?php
$myproductid = 27;
$cookieArr= array(
'productid' => '27,35',
'views' => '1,1'
);
if(in_array($myproductid, explode(',',$cookieArr['productid']))){
$searched_key = array_search($myproductid,explode(',',$cookieArr['productid']));
$views_array = explode(',',$cookieArr['views']);
$views_array[$searched_key] +=1;
$cookieArr['views'] = implode(',',$views_array);
}else{
echo "exit";
}
print_r($cookieArr);
输出: - https://eval.in/973605
答案 2 :(得分:-1)
您需要使用product_id作为键存储数组,并将视图存储为值。例如,
(
27 => 1,
37 => 2
)
通过这个你只需要检查数组的键并增加它的值。
例如,如果用户访问产品ID 27。