[英]Unique entries in an array
我将以下10个URL存储到会话中:
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
//Insert Current URL in SESSION
$CurrentPage = curPageURL();
if(strpos($CurrentPage, '/products/'))
{
echo "<div class=\"title\">Recently viewed products</div>
<div id=\"recent\">";
$_SESSION['pages'][] = $CurrentPage;
if ( Count ( $_SESSION['pages'] ) > 10 )
Array_Shift ( $_SESSION['pages'] );
如何确保仅存储唯一条目?
谢谢,乙
代替$_SESSION['pages'][] = $CurrentPage
尝试$_SESSION['pages'][$CurrentPage] = 1
/ edit:要保持项目排序,请先取消设置:
unset($_SESSION['pages'][$CurrentPage]);
$_SESSION['pages'][$CurrentPage] = 1;
if(!in_array($CurrentPage, $_SESSION['pages']) {
$_SESSION['pages'][] = $CurrentPage;
}
刚过
$_SESSION['pages'][] = $CurrentPage;
您需要添加
$_SESSION['pages'] = array_unique($_SESSION['pages']);
文件可在这里找到
该方法是本机函数,因此需要较少的处理。 对数组中的每个项目执行“ if”操作可能会非常昂贵。
请问array_unique有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.