我得到了客户最近查看的产品列表。这是通过向会话添加产品ID并将这些ID添加到显示产品的查询来完成的。会话数组的长度必须只有3个。
当然,不能添加重复项(如果一个人观看3个产品,并且在该产品之后观看3个产品,则最后只有1个产品,因为它是相同的ID三次)。
所以我使用了array_unique
,就像在下面的代码中一样:
在产品页面上: -
$_SESSION['laatstbekeken'][] = $productcr[0]['id'];
在目录页面上: -
if($_SESSION['laatstbekeken'] != ''){
$result = array_unique($_SESSION['laatstbekeken']);
$sessionlimit = array_slice($result, -3);
$prods = implode(",", $sessionlimit);
$laatst = "SELECT * FROM `snm_content` WHERE id IN ($prods) and state = 1 ORDER BY id DESC LIMIT 0,3";
我的问题是: -
当我观看产品编号1和手表产品2 3 4之后,它们应该包含2,3,4,但是当我再次观看1时,它不会被添加。该数组仍将包含2,3,4因为它检查唯一身份。
如果我打印$result
,这就是显示的内容: -
Array ( [0] => 7 [1] => 8 [2] => 5 [4] => 6 )
如果我打印$sessionlimit
,结果如下: -
Array ( [0] => 8 [1] => 5 [2] => 6 )
即使我再次打开ID为7的产品,它也不会添加到数组($sessionlimit)
中。
我怎样才能让它像我想要的那样工作?
答案 0 :(得分:0)
您可以使用array_reverse函数尝试下面的代码
来获得所需的输出export_query