第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當(dāng)陣列上的一個或多個數(shù)據(jù)重復(fù)時如何限制訪問

當(dāng)陣列上的一個或多個數(shù)據(jù)重復(fù)時如何限制訪問

PHP
紅顏莎娜 2021-11-26 19:57:32
如果我的英語不好,我很抱歉。我的代碼有問題。當(dāng)我的數(shù)組中有重復(fù)時,我如何停止訪問。我的意思是,當(dāng)數(shù)組中的一個或多個數(shù)據(jù)重復(fù)時,用戶必須從第一頁重復(fù)輸入。當(dāng)數(shù)組沒有重復(fù)時,用戶可以訪問下一頁。這是我嘗試過的代碼。$no_id=array('100100','100200','100300','100200','100200','100100');$array = array();foreach ($no_id as $key => $value){   if(isset($array[$value]))   {      $array[$value] += 1;   } else   {      $array[$value] = 1;   }}foreach ($array as $alert => $n){   if($n >= 2)   {      header('location:../../home');   } else   {      header('location:../../questionnair');   }}但是當(dāng)發(fā)現(xiàn)重復(fù)數(shù)據(jù)時(數(shù)組100100有2條數(shù)據(jù),100200有3條數(shù)據(jù)),系統(tǒng)仍然帶用戶訪問問卷頁面,而不是首頁。感謝您的幫助。
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經(jīng)驗 獲得超9個贊

我認為主要的問題是你應(yīng)該總是exit()在使用header()with location后使用,否則頁面會繼續(xù)執(zhí)行。


如果第一個值是唯一值,因為第一個循環(huán)總是如此,這仍然會導(dǎo)致問題exit;。


您可以解決這個問題(只有header()在值 > 2時才調(diào)用,然后在循環(huán)之后所有的默認值都是唯一的),但另一種方法是使用array_count_values()它計算列表中存在的每個值的數(shù)量,然后用于max()查找最常見的一種,然后針對它進行測試......


$no_id=array('100100','100200','100300','100200','100200','100100');


$n = max(array_count_values($no_id));

if($n >= 2)

{

    header('location:../../home');

    exit;

} else

{

    header('location:../../questionnair');

    exit;

}

更新:


另一種稍微快一點的版本是使用原始的第一個循環(huán),但是一旦檢測到該值已經(jīng)設(shè)置,它就可以停止工作,然后返回......


$no_id=array('100100','100200','100300','100200','100200','100100');

$array = array();

foreach ($no_id as $key => $value)

{

    if(isset($array[$value]))

    {

        header('location:../../home');

        exit;

    } else

    {

        $array[$value] = 1;

    }

}

header('location:../../questionnair');

exit;


查看完整回答
反對 回復(fù) 2021-11-26
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

如果您只需要檢查數(shù)組是否有重復(fù),您可以使用array_unique新數(shù)組和舊數(shù)組進行比較。如果數(shù)組不相同,則意味著存在重復(fù)項。


用代碼:


$no_id = array('100100','100200','100300','100200','100200','100100');

$new_array = array_unique($no_id);


if (count($no_id) == count($new_array)) {

    // 2 arrays have same number of items => they are equal => no duplicates

    $redirect = "questionnair.php";

} else {

    // 2 arrays have different number of items => they are not equal => duplicates

    $redirect = "home.php";

}


header("location: {$redirect}");

注意

您必須重定向到另一個 PHP 頁面(例如 home.php 而不僅僅是 home)。


查看完整回答
反對 回復(fù) 2021-11-26
?
慕的地8271018

TA貢獻1796條經(jīng)驗 獲得超4個贊

首先,使用array_unique函數(shù)更簡單,它將刪除所有重復(fù)值。之后您可以進行檢查,如果沒有任何更改,則沒有重復(fù)的項目。


像這樣:


$no_id=array('100100','100200','100300','100200','100200','100100');

$no_id_unique = array_unique($no_id);


if(count($no_id)===count($no_id_unique)){

    header('location:../../questionnair');

}else{

    header('location:../../home');

}

exit();

您../在路徑中使用的下一件事,這意味著go to parent directory. 我不知道你的環(huán)境,但很可能這是一個壞主意。


根據(jù)文檔,最好指定必須轉(zhuǎn)發(fā)用戶的頁面的完整 url:


header("Location: http://www.example.com/home/");

另外,請注意,您需要阻止腳本的所有其他輸出,尤其是在header()調(diào)用之前。在這里閱讀更多。


查看完整回答
反對 回復(fù) 2021-11-26
  • 3 回答
  • 0 關(guān)注
  • 204 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號