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,我做错了
简单的解决方案:
如果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 ...