Outbook
HTML+CSS+JS, Accesibilidad, PHP y más
Inicio
Desarrollo web
PHP
PHP: Separar elementos de array por sus iniciales
PHP: Separar elementos de array por sus iniciales
He creado una sencilla función que devolverá los elementos de un array separados por sus letras iniciales.
En primer lugar habría que definir el array:
$lista = array(
'Assassin\'s Creed',
'Assassin\'s Creed II',
'Command & Conquer: Red Alert 3',
'Call of Duty: World at War',
'Bayonetta',
'Dragon Age: Origins',
'50 Cent: Blood on the Sand',
'Mini Ninjas',
'Wipeout HD',
'Valkyria Chronicles'
);
Y después llamar a la función:
listadoAlfabetico($lista);
La función sería la siguiente:
function listadoAlfabetico ($lista) {
foreach (range('A', 'Z') as $letter) {
$iniciales[] = $letter;
// Añadimos letras que no están en el alfabeto inglés
if ($letter=='C') {$iniciales[] = 'Ç';}
if ($letter=='N') {$iniciales[] = 'Ñ';}
}
$i=0;$eliminar = array();
while ($i<count($iniciales)) {
$inicial = $iniciales[$i];
$htmlLetra='';
$j=0;$k=0; while ($j<count($lista)) {
if ($lista[$j]{0}==$inicial or $lista[$j]{0}==strtolower($inicial)) {
$htmlLetra .= '<li>'.$lista[$j].'</li>';
$eliminar[] = $j;
$k++;
}
$j++;
}
// Si hay elementos con la inicial actual se eliminan del array y se genera el HTML
if ($k>0) {
rsort($eliminar);
$l=0; while ($l<count($eliminar)) {
$lista = quitarElemento($lista, $eliminar[$l]);
$l++;
}
$html .= '<p>'.$inicial.'</p><ul>'.$htmlLetra.'</ul>';
}
$eliminar = array();
$i++;
}
// Con el resto de elementos se saca el apartado del 0 al 9
if (count($lista)>0) {
$htmlLetra='';
$m=0; while ($m<count($lista)) {
$selTag='span'; if ($_GET['cliente']==$lista[$m][0]) {$selTag='strong';}
$htmlLetra .= '<li>'.$lista[$m].'</li>';
$m++;
}
$html .= '<p>0-9</p><ul>'.$htmlLetra.'</ul>';
}
return $html;
}
function quitarElemento($elementos, $indice) {
if (is_array($elementos)) {
unset($elementos[$indice]);
if(gettype($indice)!="string") {
$listaTemporal=array();
$i=0;
foreach ($elementos as $value) {
$listaTemporal[$i]=$value;
$i++;
}
$elementos=$listaTemporal;
}
return $elementos;
}
else {return false;}
}
Se puede ver el ejemplo o descargarlo (texto plano).
Artículos relacionados:
Datos del artículo:
- Publicado el Miércoles 14 de abril de 2010 a las 19:59
- Archivado en Desarrollo web, PHP
- Etiquetas: Orden alfabético, PHP
- Seguimiento de comentarios (RSS 2.0).
Comentarios del artículo
Puedes comentar o hacer trackback desde tu propio sitio web.
Si el comentario no guarda relación con el tema del artículo o los comentarios previos, si la redacción del mismo es ilegible (estilo HOYGAN), o si contiene insultos u otros términos ofensivos, será borrado de inmediato. No se garantiza ningún soporte a los ejemplos de desarrollo web presentados en este sitio.
Todavía no hay comentarios.










