Foros del Web » Programando para Internet » PHP »

Eliminar todos los valores "x" en un array

Estas en el tema de Eliminar todos los valores "x" en un array en el foro de PHP en Foros del Web. Tengo un array $lectura. Este array contiene: $lectura[0]="1"; $lectura[1]="2"; $lectura[2]="4"; $lectura[3]="1"; Entonces quiero eliminar todos los valores que tengan "1" en el array. En este ...
  #1 (permalink)  
Antiguo 01/04/2005, 03:21
 
Fecha de Ingreso: julio-2004
Ubicación: Hermosillo, Sonora, México.
Mensajes: 16
Antigüedad: 13 años, 4 meses
Puntos: 0
Eliminar todos los valores "x" en un array

Tengo un array $lectura. Este array contiene:
$lectura[0]="1";
$lectura[1]="2";
$lectura[2]="4";
$lectura[3]="1";
Entonces quiero eliminar todos los valores que tengan "1" en el array. En este caso se eliminaría el primero y el cuarto lugar.
Tengo una función que es la de array_unique() que lo que hace es que solo haya un valor de los repetidos, pero en este caso, esta funcion me dejaría un lugar con un "1" y yo quiero eliminar todos!.
Si alguien puede ayudarme, Gracias.
  #2 (permalink)  
Antiguo 01/04/2005, 04:23
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola robertogongora

No se si habrá alguna función más específica, pero se me ocurre que puedes hacer un bucle:
Código PHP:
for($i=0;$i<strlen($lectura);$i++)
  if(
$lectura[$i]=='1')
    
array_splice($lectura,$i,1); 
Saludos,
  #3 (permalink)  
Antiguo 01/04/2005, 04:46
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 16 años
Puntos: 1
Código PHP:
function array_clean($arr,$value)
{
  foreach(
$arr as $k => $v)
  {
    if (
$v == $value)
    {
      unset(
$arr[$k]);
    }
  }
  return 
$arr;

eso funcionaria? :)
__________________
Usuario Registrado de linux #374849
  #4 (permalink)  
Antiguo 02/04/2005, 00:49
 
Fecha de Ingreso: julio-2004
Ubicación: Hermosillo, Sonora, México.
Mensajes: 16
Antigüedad: 13 años, 4 meses
Puntos: 0
Gracias a todos. JavierB, yo tambien había intentado el codigo que me mostraste, pero como el for va en aumento, y array_splice elimina las claves totalmente y vuelve a asignarles otras, entonces no funciona. Pero gracias de todos modos.
  #5 (permalink)  
Antiguo 02/04/2005, 03:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola de nuevo.

En primer lugar decir que había un error en el código (debido a mi novatez). Donde pone strlen($lectura) debería poner count($lectura)

Lo he probado y me parece que funciona bien. En cualquier caso prueba haciendo el bucle a la inversa:

for($i=count($lectura)-1;$i>=0;$i--)

Suerte. 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 03:21.