簡體   English   中英

PHP-array_unique

[英]PHP - array_unique

我有以下PHP代碼,該代碼根據定義的標准從同一表的各個列中獲取數據。

$arraySecondaryNames =  array();

$sqlQuerySecondaryCat01 = $dbh->prepare("SELECT secondary_category_set_1 FROM table_name WHERE primary_category_set_1 = :primary_cat");
$sqlQuerySecondaryCat01->execute(array(':primary_cat'=>$primaryCatText, ':profile_switch'=>$profileSwitchOn, ':profile_visibility'=>$profileVisShow));
foreach($sqlQuerySecondaryCat01 as $sqlResultSecondaryCat01){
    $arraySecondaryNames[] = $sqlResultSecondaryCat01['secondary_category_set_1'];
}

$sqlQuerySecondaryCat02 = $dbh->prepare("SELECT secondary_category_set_2 FROM table_name WHERE primary_category_set_2 = :primary_cat");
$sqlQuerySecondaryCat02->execute(array(':primary_cat'=>$primaryCatText, ':profile_switch'=>$profileSwitchOn, ':profile_visibility'=>$profileVisShow));
foreach($sqlQuerySecondaryCat02 as $sqlResultSecondaryCat02){
    $arraySecondaryNames[] = $sqlResultSecondaryCat02['secondary_category_set_2'];
}

輸出有時是重復的:因此我使用以下內容

$arraySecondaryCatNames = array_filter($arraySecondaryCatNames);
$arraySecondaryCatNames = array_unique($arraySecondaryCatNames);

輸出仍然包含重復項:

Array ( [0] => Bride and Groom [1] => Bride and Groom [2] => Bride and Groom )

我不確定如何消除重復項。 [0],[1]和[3]的值相同-因為array_unique使用區分大小寫。

如何消除重復?

請嘗試這個

     $arraySecondaryNames =  array();
     $arraySecondaryNames1 = array();
     $arraySecondaryNames2 = array();

        $sqlQuerySecondaryCat01 = $dbh->prepare("SELECT secondary_category_set_1 FROM table_name WHERE primary_category_set_1 = :primary_cat");
        $sqlQuerySecondaryCat01->execute(array(':primary_cat'=>$primaryCatText, ':profile_switch'=>$profileSwitchOn, ':profile_visibility'=>$profileVisShow));
        foreach($sqlQuerySecondaryCat01 as $sqlResultSecondaryCat01){
            $arraySecondaryNames1[] = $sqlResultSecondaryCat01['secondary_category_set_1']; // First array
        }

        $sqlQuerySecondaryCat02 = $dbh->prepare("SELECT secondary_category_set_2 FROM table_name WHERE primary_category_set_2 = :primary_cat");
        $sqlQuerySecondaryCat02->execute(array(':primary_cat'=>$primaryCatText, ':profile_switch'=>$profileSwitchOn, ':profile_visibility'=>$profileVisShow));
        foreach($sqlQuerySecondaryCat02 as $sqlResultSecondaryCat02){
            $arraySecondaryNames2[] = $sqlResultSecondaryCat02['secondary_category_set_2']; //Second array
        }



        $arraySecondaryCatNames = array_unique( array_merge($arraySecondaryNames1,$arraySecondaryNames2) );
       //Merged array with no duplicate values     
       print_r($arraySecondaryCatNames);

嘗試這個 :

$arraySecondaryCatNames_filter = $arraySecondaryCatNames_unique = array();
$arraySecondaryCatNames_filter = array_filter($arraySecondaryCatNames);
$arraySecondaryCatNames_unique =  array_unique($arraySecondaryCatNames_filter);
print_r($arraySecondaryCatNames_unique);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM