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