Foros del Web » Programando para Internet » PHP »

Eliminar Elemento de un Array asociativo manteniendo las Keys

Estas en el tema de Eliminar Elemento de un Array asociativo manteniendo las Keys en el foro de PHP en Foros del Web. hola tengo el siguiente array asociativo, necesito eliminar elementos. Código PHP: $arrayTest  = array ( 26  => array (  'qty'  =>  1  ),                       20  => array (  'qty'  =>  2  ...
  #1 (permalink)  
Antiguo 26/04/2007, 07:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
Eliminar Elemento de un Array asociativo manteniendo las Keys

hola tengo el siguiente array asociativo, necesito eliminar elementos.

Código PHP:
$arrayTest = array (26 => array ( 'qty' => ), 
                    
20 => array ( 'qty' => ), 
                    
25 => array ( 'qty' => ), 
                    
21 => array ( 'qty' => ), 
                    
27 => array ( 'qty' => )); 
La idea es mantener las mismas claves del array, que son el id del producto.

Ej si quiero eliminar el producto id 25 debería quedar:
Código PHP:
$arrayTest = array (26 => array ( 'qty' => ), 
                    
20 => array ( 'qty' => ), 
                    
21 => array ( 'qty' => ), 
                    
27 => array ( 'qty' => )); 
La idea es NO usar unset($arrayTest[$products_id]).

Gracias y saludos.
  #2 (permalink)  
Antiguo 26/04/2007, 08:05
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

Creo que estás confundido, unset hace exactamente lo que pedís. Probá esto, por ejemplo:
Código PHP:
<?php
$arrayTest 
= array (26 => array ( 'qty' => ), 
                    
20 => array ( 'qty' => ), 
                    
25 => array ( 'qty' => ), 
                    
21 => array ( 'qty' => ), 
                    
27 => array ( 'qty' => ));  
echo 
'<pre>';
print_r($arrayTest);
echo 
'</pre>';
unset(
$arrayTest[25]);
echo 
'<pre>';
print_r($arrayTest);
echo 
'</pre>';
?>
  #3 (permalink)  
Antiguo 26/04/2007, 08:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

La idea es NO usar unset...

Es parte de una tarea esto? porque para que haces otras cosas si unset hace todo lo que requieres, pero si es para una tarea te recomiendo que le des una investigada, usa, sort, array_search, array_push y array_pop.
  #4 (permalink)  
Antiguo 26/04/2007, 13:37
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

no es una tarea, solo quería hacerlo de otra forma, usando array_slice o array_splice, pero al eliminar me ordenan el key a 0,1,2,..etc.. es decir pierdo los id de los productos.

es posible de otra forma? o solo se puede con unset?
  #5 (permalink)  
Antiguo 26/04/2007, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

Cual es el problema de usar unset? Si para eso fue diseniado..
  #6 (permalink)  
Antiguo 26/04/2007, 14:23
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 4
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

Para que deseas utilizar otra forma, si lo que necesitas esta ahí.

Utiiza unset();

Es lo unico que hay... Si quieres quebrarte la cabeza, prueba con algún for o algo asi
  #7 (permalink)  
Antiguo 26/04/2007, 15:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
Re: Eliminar Elemento de un Array asociativo manteniendo las Keys

ok gracias. eso haré.

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 13:09.