Eliminar duplicados en un bucle foreach
21 may 2013, 18:11:58
Vistas: 16K
Votos: -1
He creado un filtro para mis resultados de búsqueda que permite a los usuarios filtrar búsquedas basadas en el Estado
de su perfil. El problema que tengo es que aparecen estados duplicados en la lista desplegable cuando varios usuarios tienen el mismo estado.
Aquí está el código actual que intenta resolver ese problema.
<div class="state">
<input type="hidden" name="search_type" value="members">
<select id="stateDrop" name="state">
<option value="name">Estado</option>
<?php
$prevState = "";
foreach($users as $user) {
$state = get_cimyFieldValue($user->ID, 'STATE'); // Obteniendo el estado de su página de perfil
if($prevState != $state) {
$prevState = $state;
echo '<option value="'.$state.'">'.$state.'</option>';
}
}
?>
</select>
</div>
Esto funciona bien cuando 2 estados están uno después del otro, pero cuando tengo algo como lo siguiente, no elimina los duplicados...
No funciona
-California
-Washington
-California
Funciona
-California
-California
-Washington
¿Qué puedo hacer diferente para obtener los resultados que necesito y posiblemente ordenarlos alfabéticamente? Gracias,
Todas las respuestas a la pregunta
1
0
Usar array_unique()
<?php
foreach($users as $user) {
$states[] = get_cimyFieldValue($user->ID, 'STATE'); // Obteniendo el estado de su página de perfil
}
$states = array_unique($states);
?>
<div class="state">
<input type="hidden" name="search_type" value="members">
<select id="stateDrop" name="state">
<option value="name">Estado</option>
<?php
foreach($states as $state) {
echo '<option value="'.$state.'">'.$state.'</option>';
}
?>
</select>
</div>

Ravinder Kumar
2.57K
21 may 2013 18:20:54
Preguntas relacionadas
2
respuestas
4
respuestas
2
respuestas
2
respuestas