如何正确更新上次查看的产品数组

时间:2017-08-02 13:22:28

标签: php arrays session

我得到了客户最近查看的产品列表。这是通过向会话添加产品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)中。

我怎样才能让它像我想要的那样工作?

1 个答案:

答案 0 :(得分:0)

您可以使用array_reverse函数尝试下面的代码

来获得所需的输出
export_query