繁体   English   中英

数组中的唯一条目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM