Удаление дубликатов в цикле foreach
21 мая 2013 г., 18:11:58
Просмотры: 16K
Голосов: -1
Я создал фильтр для результатов поиска, который позволяет пользователям фильтровать результаты по штату из их профиля. Проблема в том, что в выпадающем списке отображаются дубликаты штатов для пользователей из одного штата.
Вот текущий код, который пытается решить эту проблему:
<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'); // Получаем штат из профиля пользователя
if($prevState != $state) {
$prevState = $state;
echo '<option value="'.$state.'">'.$state.'</option>';
}
}
?>
</select>
</div>
Этот код работает хорошо, когда дубликаты штатов идут подряд, но в случае, подобном приведенному ниже, дубликаты не удаляются...
Не работает:
-Калифорния
-Вашингтон
-Калифорния
Работает:
-Калифорния
-Калифорния
-Вашингтон
Что можно сделать по-другому, чтобы получить нужный результат с возможностью сортировки по алфавиту? Спасибо.
Все ответы на вопрос
1
0
Используйте array_unique()
<?php
foreach($users as $user) {
$states[] = get_cimyFieldValue($user->ID, 'STATE'); // Получаем штат из профиля пользователя
}
$states = array_unique($states);
?>
<div class="state">
<input type="hidden" name="search_type" value="members">
<select id="stateDrop" name="state">
<option value="name">Штат</option>
<?php
foreach($states as $state) {
echo '<option value="'.$state.'">'.$state.'</option>';
}
?>
</select>
</div>

Ravinder Kumar
2.57K
21 мая 2013 г. 18:20:54
Похожие вопросы
2
ответов