Foros del Web » Programando para Internet » PHP »

Array_splice

Estas en el tema de Array_splice en el foro de PHP en Foros del Web. Hola, a ver si me podeis echar un cable con la función array_splice: tengo el siguiente array: $tamanos[$n]['tamano'] $tamanos[$n]['indice'] este array puede tener por ejemplo ...
  #1 (permalink)  
Antiguo 01/08/2011, 10:39
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Array_splice

Hola,

a ver si me podeis echar un cable con la función array_splice:

tengo el siguiente array:
$tamanos[$n]['tamano']
$tamanos[$n]['indice']

este array puede tener por ejemplo 8 valores n, si quiero borrar los valores donde n = 2 ¿como he de hacerlo con array_splice?

he intentado de esta forma
Código PHP:
array_splice($tamanos21); 
pero además de borrarme el segundo me borra también el primero.

Gracias de antemano un saludo
  #2 (permalink)  
Antiguo 01/08/2011, 10:50
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Array_splice

array_splice suprime los elementos especificados por desplazamiento y tamaño de un array especificado y agrega otros si se especifica.

Si se especifica un desplazamiento positivo, el comienzo de la parte suprimida sera en esa posicion desde el comienzo del array.

Ejemplos:

Código PHP:
Ver original
  1. $miArray = array(1, 2, 3, 4);
  2. array_splice($miArray, 2);
  3. //miArray ahora solo tiene (1, 2)
  4.  
  5. $miArray = array(1, 2, 3, 4);
  6. array_splice($miArray, 1, -1);
  7. //miArray ahora solo tiene (1, 4)
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 01/08/2011, 11:04
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array_splice

Hola jotaincubus,

quisiera quedarme $miArray = array(1, 3, 4); por ejemplo. Como lo intento también se borra el primer valor
  #4 (permalink)  
Antiguo 01/08/2011, 11:26
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Array_splice

La pregunta del millón es porque no usas unset?

$arr = array(1, 2, 3, 4);

unset($arr[1]);

Da 1 3 4 no?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 01/08/2011, 11:30
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array_splice

debe de cambiar los indices de los valores siguientes, unset no lo hace
  #6 (permalink)  
Antiguo 01/08/2011, 11:32
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Array_splice

Cita:
Iniciado por erxaca Ver Mensaje
debe de cambiar los indices de los valores siguientes, unset no lo hace
No, pero array_values si lo hace.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 01/08/2011, 11:43
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array_splice

Cita:
Iniciado por andresdzphp Ver Mensaje
No, pero array_values si lo hace.
¿podrias ponerme un ejemplo?
  #8 (permalink)  
Antiguo 01/08/2011, 11:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Array_splice

Código PHP:
Ver original
  1. <?php
  2.  
  3. $tamanos[0]['tamano'] = 150;
  4. $tamanos[1]['tamano'] = 151;
  5. $tamanos[2]['tamano'] = 152;
  6. $tamanos[3]['tamano'] = 153;
  7. $tamanos[4]['tamano'] = 154;
  8. $tamanos[5]['tamano'] = 155;
  9. $tamanos[6]['tamano'] = 156;
  10. $tamanos[7]['tamano'] = 157;
  11.  
  12. unset($tamanos[2]);
  13.  
  14. $res = array_values($tamanos);
  15.  
  16. var_dump($res);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 01/08/2011, 11:57
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array_splice

gracias ;)
  #10 (permalink)  
Antiguo 01/08/2011, 18:11
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array_splice

tras un rato mas de pruebas he dado cual era el fallo en mi ejemplo inicial, esta bien solo que en mi array metia datos desde el idice 1 y al eliminar un registro empezaba desde el 0 XD. Donde indicaba 2 ( array_splice($tamanos, 2, 1) ) quiere decir la posicion 2 del índice, siendo el registro 3 contando desde el principio.

Gracias igualmente ;)
  #11 (permalink)  
Antiguo 01/08/2011, 18:25
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Array_splice

Edit: Olvidalo
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 01/08/2011 a las 18:45

Etiquetas: Ninguno
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 17:19.