PHP - 会话数组 - 防止重复的委托

Mar*_*ark 0 php arrays session

这个真的很烦我,也找不到一个简单的解决方案.

在产品的详细视图中,我将信息设置为会话,最多4个:

$_SESSION['recent'][] = array(
      'id' => $productimgfolder,
      'title' => $product['Product']['title'],
      'link' => $_SERVER['REQUEST_URI'],
      'image' => 'img/products/'.$productimgfolder.'/'.$product['Product']['mainpicture']
    );
$_SESSION['recent'] = array_slice($_SESSION['recent'],-4);
Run Code Online (Sandbox Code Playgroud)

这部分工作,如果我输出会话: 编辑图像=>如果我重新加载详细信息视图,这是wat发生

在此输入图像描述

我正在努力的部分是,当我重新加载详细信息视图时,会话中的信息是重复的.

我怎样才能防止这种情况发生?

我试着用in_array&array_unique,我做错了

Ali*_*had 5

简单的解决方案:

如果id是唯一的,你可以这样做:

if(!array_key_exists ($productimgfolder, $_SESSION['recent']))
{
    $_SESSION['recent'][$productimgfolder] = array(
          'id' => $productimgfolder,
          'title' => $product['Product']['title'],
          'link' => $_SERVER['REQUEST_URI'],
          'image' => 'img/products/'.$productimgfolder.'/'.$product['Product']['mainpicture']
        );
}

$_SESSION['recent']=array_slice($arr, -4, 4, true);
Run Code Online (Sandbox Code Playgroud)

另外,你必须预先处理最近的数组并检查循环中的id ...