Foros del Web » Programando para Internet » PHP »

Que funcion elimina los elementos vacios de un array?

Estas en el tema de Que funcion elimina los elementos vacios de un array? en el foro de PHP en Foros del Web. Si le hago un explode("\n",$cadena) Siendo $cadena ='1 2 3 aa aa bb'; Abran elementos vacios, como eliminarlos todos de un tajo?...
  #1 (permalink)  
Antiguo 06/04/2005, 16:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Que funcion elimina los elementos vacios de un array?

Si le hago un explode("\n",$cadena)

Siendo $cadena ='1
2
3

aa

aa

bb';

Abran elementos vacios, como eliminarlos todos de un tajo?
  #2 (permalink)  
Antiguo 06/04/2005, 16:13
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Bueno, aqui contendran saltos de linea, pero hay ocaciones en que el elemento quedara 100% vacio.

Como eliminar esos elementos?

Luego...

Como arregalar el array tal que $array[8] que fue eliminado por estar vacio sea reemplazado con el array[9]

Es decir emparejar el array, como?
  #3 (permalink)  
Antiguo 06/04/2005, 18:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
vamos a php.net y vemos:
Cita:
Nota: La función unset() le permite remover la definición de claves de una matriz. Tenga en cuenta que la matriz NO es re-indexada. Si sólo usa "índices enteros comunes" (comenzando desde cero, incrementando en uno), puede conseguir el efecto de re-indexación usando array_values().
y sigue...:
Código PHP:
<?php
$a 
= array(=> 'uno'=> 'dos'=> 'tres');
unset(
$a[2]);
/* producira una matriz que hubiera sido definida como
   $a = array(1 => 'uno', 3 => 'tres');
   y NO
   $a = array(1 => 'uno', 2 =>'tres');
*/

$b array_values($a);
// Ahora $b es array(0 => 'uno', 1 =>'tres')
?>
http://www.php.net/manual/es/language.types.array.php

Espero te sirva... Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 06/04/2005 a las 18:14
  #4 (permalink)  
Antiguo 06/04/2005, 19:05
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Gracias amig@ jam1138
Pero no...

Quie tal si se trata de una cadena de unos...

400 $array[*] vacios?...

Se podria hacer con while o for, pero quisiera saber si existe una funcion para eliminarlos todos de un tajo?
  #5 (permalink)  
Antiguo 06/04/2005, 21:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
¿Y por qué no te sirve eliminarlos mediante un bucle?. En el caso de tener que eliminar 400 elementos del array no creo que toma más de un segundo.
__________________
El conocimiento es libre: Movimiento por la Devolución
  #6 (permalink)  
Antiguo 07/04/2005, 07:23
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 4 meses
Puntos: 34
http://ar2.php.net/manual/en/function.array-filter.php

Es solo cuestión de buscar algo que se acomode a tu necesidad;)

Sino hace:
<?php
$tuArray = array("1","2","","","8");
$array = array_values(array_diff($tuArray, array('')));
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 07/04/2005 a las 07:26
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:32.