Foros del Web » Programando para Internet » PHP »

Eliminar blancos de array

Estas en el tema de Eliminar blancos de array en el foro de PHP en Foros del Web. Tengo un array en los que hay posiciones que solamente tienen un espacio en blanco. Generalmente solo suele ser la ultima posicion del array la ...
  #1 (permalink)  
Antiguo 22/02/2008, 09:28
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Eliminar blancos de array

Tengo un array en los que hay posiciones que solamente tienen un espacio en blanco.
Generalmente solo suele ser la ultima posicion del array la que esta ocupada con un espacio en blanco.

Me gustaria saber si hay alguna funcion para eliminar elemento de un array diciendole que tipo de elemento quieres borrar
ejemplo : borrar_elemento($array," " )

algo asi......si no existe..........algo que se os ocurra?

Un saludo
  #2 (permalink)  
Antiguo 22/02/2008, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Eliminar blancos de array

Puedes ciclar tu arreglo y verificar, por decir:
Código PHP:
foreach( $array as &$element ) {
       if( empty( 
trim$element ) ) ) {
               unset( 
$element );
       }

Saludos.
  #3 (permalink)  
Antiguo 22/02/2008, 13:57
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Eliminar blancos de array

no me funciona y creo qu es por esto:
leido de php.net

Note: Hay que tener en cuenta que foreach trabaja con una copia de la matriz especificada y no la lista en si, por ello el puntero de la lista no es modificado como en la función each(), y los cambios en el elemento de la matriz retornado no afectan a la matriz original. De todas maneras el puntero interno a la matriz original avanza al procesar la matriz. suponiendo que bucle foreach se ejecuta hasta el final, el puntero interno a la matriz estar/aacute; al final de la matriz.

entonces supongo que tu tecnica de quedarte con la direccion de cada elemento del array e ir leyendolo y borrandolo en caso de ser "espacion en blanco" no vale.....porque el foreach debe jugar con una copia del array, por tanto nunca llegamos a tocar el array original.

Como lo podria hacer tocando el array original?
  #4 (permalink)  
Antiguo 22/02/2008, 15:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Eliminar blancos de array

La sintaxis que te puse, es valida si usas PHP5, si usas PHP4, entonces tendrás que hacer un For normal.

Saludos.
  #5 (permalink)  
Antiguo 23/02/2008, 04:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Eliminar blancos de array

Estoy usando php5 y no me compila esta linea;

if( empty( trim( $element ) ) )

He mirado en php.net y mira lo que dice
http://es2.php.net/empty
Note: empty() sólo chequea variables ya que cualquier otra cosa producirá un error de intérprete. En otras palabras, lo siguiente no funcionará: empty(trim($name)).

Por tanto lo dividí en dos pasos:
primero:
trim($element)
luego:
empty ($element)

eso ya si me compila pero no consigo mi fín, es decir, quitar los blancos del array. Creo que es por lo que te dije antes, cuando usas un foreach la matriz que se esta usando no es la original, sino una copia, por tanto en &$element te estas quedando con la direccion del elemento del array-copia.

(((creo)))

que opinas?

Un saludo,
  #6 (permalink)  
Antiguo 24/02/2008, 13:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Eliminar blancos de array

Usa un for normal entonces, es la forma mas sencilla.

Saludos.
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:39.