Foros del Web » Programando para Internet » PHP »

Borrar elementos de un array

Estas en el tema de Borrar elementos de un array en el foro de PHP en Foros del Web. He mirado por el foro mediante la busqueda pero no me ha servido lo que he encontrado, o quizas no se aplicarlo correctamente..... Mi idea ...
  #1 (permalink)  
Antiguo 19/10/2010, 11:10
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 0
Borrar elementos de un array

He mirado por el foro mediante la busqueda pero no me ha servido lo que he encontrado, o quizas no se aplicarlo correctamente.....


Mi idea es que tengo varios arrays, en los cuales almaceno identificadores de producto en uno, en otro los nombres del producto, en otro la ruta a una imagen dl producto,. etc etc....

De modo que la posicion 0 del array de identificador, corresponde al nombre del producto almacenado en la posicion 0 del array de nombres, y asi con las fotos y demas.


El problema viene cuando elimino un producto, que quiero eliminar esa posicion.

Si por ejemplo tengo 8 posiciones ocupadas, quiero eliminar la posicion 4 de todos los arrays, de modo que lo que contenia la posicion 5, pase a ocupar la posicion 4; lo que contenia la posicion 6, pase a ocupar la posicion 5, y asi sucesivamente, de modo que al final como he eliminado un elemento de dicho array, solo esten ocupadas 7 posiciones.


He probado con "unset" pero no me da resultado, quizas para lo que quiero hacer no existe ninguna funcion y me toque crearla, pero imagino que si exista algo.


Un saludo y gracias por la ayuda, espero haberme explicado bien.
  #2 (permalink)  
Antiguo 19/10/2010, 11:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Borrar elementos de un array

de hecho unset() sirve precisamente para lo que dices, quizá solo te falto ordenar el arreglo resultante de nuevo para re-indexar los índices... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/10/2010, 11:29
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Borrar elementos de un array

Y el modo de usarlo seria este el correcto??


Cita:
unset ($this->array_id_prod[$linea]);

Con eso ya me eliminaria el elemento y se me reordenarian los espacios ocupados en posiciones posteriores a la posicion $linea??
  #4 (permalink)  
Antiguo 19/10/2010, 11:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Borrar elementos de un array

Cita:
Iniciado por MARTIN_LAW Ver Mensaje
Y el modo de usarlo seria este el correcto?? [...] Con eso ya me eliminaria el elemento y se me reordenarian los espacios ocupados en posiciones posteriores a la posicion $linea??
el modo correcto de usar viene en el manual, lee el manual
http://php.net/unset

y bueno, tan solo elimina el elemento... como te decía después podrías re-ordenar el arreglo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/10/2010, 11:41
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Borrar elementos de un array

Gracias pateketrueke, pero entonces unset() no hace exactamente lo que queria, ademas de eliminar el contenido de dicha posicion del array, me tocaria despues reordenar el array por lo que veo, por eso no me funcionaba.

Yo pensaba que unset, ya automaticamente desplazaba los elementos para no dejar posiciones del array vacias entre medias.

Gracias de nuevo


EDITADO:

Ya encontre la solucion, aqui pongo que hice finalmente por si pudiera serle util a algun otro usuario con el mismo problema:


Código:
unset ($this->array_id_prod[$linea]);
//reindexo para evitar que me queden posiciones vacias en el array
$this->array_id_prod = array_values($this->array_id_prod);

Última edición por MARTIN_LAW; 19/10/2010 a las 11:53

Etiquetas: borrar, elementos
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 21:48.