我为我的搜索结果创建了一个过滤器,允许人们根据自己的State
从他们的个人资料中。我遇到的问题是,对于具有相同状态的用户,下拉列表中会显示重复的状态。
下面是试图消除该问题的当前代码。
<div class="state">
<input type="hidden" name="search_type" value="members">
<select id="stateDrop" name="state">
<option value="name">State</option>
<?php
$prevState = "";
foreach($users as $user) {
$state = get_cimyFieldValue($user->ID, \'STATE\'); // Grabing their state from their profile page
if($prevState != $state) {
$prevState = $state;
echo \'<option value="\'.$state.\'">\'.$state.\'</option>\';
}
}
?>
</select>
</div>
当两个状态紧随其后时,这非常有效,但当我有下面这样的内容时,它不会消除重复项。。。
Not working
-California
-Washington
-California
Working
-California
-California
-Washington
为了得到所需的结果并可能按字母顺序进行排序,我可以采取哪些不同的措施?谢谢
最合适的回答,由SO网友:Ravinder Kumar 整理而成
Use array_unique()
<?php
foreach($users as $user) {
$states[] = get_cimyFieldValue($user->ID, \'STATE\'); // Grabing their state from their profile page
}
$states = array_unique($states);
?>
<div class="state">
<input type="hidden" name="search_type" value="members">
<select id="stateDrop" name="state">
<option value="name">State</option>
<?php
foreach($states as $state) {
echo \'<option value="\'.$state.\'">\'.$state.\'</option>\';
}
?>
</select>
</div>