Foros del Web » Programando para Internet » PHP »

Eliminar campos de array vacios

Estas en el tema de Eliminar campos de array vacios en el foro de PHP en Foros del Web. Hola Tengo el siguiente código que carga una lista de enlaces de un txt, elimina los duplicados y después los muestro como enlaces, el problema ...
  #1 (permalink)  
Antiguo 29/06/2011, 01:36
Avatar de vendoeninternet  
Fecha de Ingreso: marzo-2011
Ubicación: Bilbao
Mensajes: 57
Antigüedad: 13 años, 1 mes
Puntos: 11
Eliminar campos de array vacios

Hola

Tengo el siguiente código que carga una lista de enlaces de un txt, elimina los duplicados y después los muestro como enlaces, el problema es que al eliminar los duplicados después se muestran como campos vacíos pero la programación los sigue contando como array.

Código:
<?php
// Cargar archivo en Array de un txt donde tengo en cada linea una url
$archivo = file('lista.txt');

// Paso todo a minusculas
$lista = array_map("strtolower", $archivo);

// Elimino las url repetidas, las duplicadas y dejo solo una, hasta aquí todo bien
$lista = array_unique($lista);

// Ahora habría que quitar los campos de array vacíos, que pongo?


// este es el código que uso para mostrar la lista de enlaces
for($i=0; $i<sizeof($lista); $i++)
{
echo '<li><a rel="gb_pageset[search_sites]" href="'.$lista[$i].'">'.$lista[$i].'</a></li>';
}
?>
el archivo lista.txt podría ser por ejemplo:

Código:
http://google.es
http://yahoo.es
http://google.es
http://yahoo.es
El resultado es que me aparecen dos links en blanco y estoy pensando en poner algo tipo

Código:
if (array[$i] == ""){
pasar de el
}
Pero no se me ocurre donde o como ponerlo, igual hay algo más sencillo.

Gracias
__________________
Mi web de anuncios para poner anuncios gratis en internet
  #2 (permalink)  
Antiguo 29/06/2011, 01:42
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Respuesta: Eliminar campos de array vacios

Creo que podria ser asi:

Código HTML:
	for($i=0; $i<sizeof($lista); $i++)
	{
		while (array[$i] != "")
		{
		echo '<li><a rel="gb_pageset[search_sites]" href="'.$lista[$i].'">'.$lista[$i].'</a></li>';
		}
	}
he puesto un while para comprobar que el array del iterador sea distinto de ""



Saludos
  #3 (permalink)  
Antiguo 29/06/2011, 01:48
Avatar de vendoeninternet  
Fecha de Ingreso: marzo-2011
Ubicación: Bilbao
Mensajes: 57
Antigüedad: 13 años, 1 mes
Puntos: 11
Respuesta: Eliminar campos de array vacios

Con el while se me creaba un bucle infinito pero he reemplazado while por if y va perfecto

Muchas gracias.

Pongo el código bien por si alguien lo quieres usar para algo.

Cita:
<?php
// Cargar archivo en Array de un txt donde tengo en cada linea una url
$archivo = file('lista.txt');

// Paso todo a minusculas
$lista = array_map("strtolower", $archivo);

// Elimino las url repetidas
$lista = array_unique($lista);

// Muestro la lista de enlaces
for($i=0; $i<sizeof($lista); $i++){
if ($lista[$i] != ""){
echo '<li><a rel="gb_pageset[search_sites]" href="'.$lista[$i].'">'.$lista[$i].'</a></li>';
}
}
?>
__________________
Mi web de anuncios para poner anuncios gratis en internet

Última edición por vendoeninternet; 29/06/2011 a las 02:01 Razón: Fallo de ortografía
  #4 (permalink)  
Antiguo 29/06/2011, 02:07
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Respuesta: Eliminar campos de array vacios

UPS! No me di cuenta del "super bucle" que se producía con el while, perdona!

Vi que lo solucionaste con un if ;) Estupendo.

Saludos

Etiquetas: campos, vacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:45.