Foros del Web » Programando para Internet » PHP »

insertar un elemento en cualquier posicion de un array

Estas en el tema de insertar un elemento en cualquier posicion de un array en el foro de PHP en Foros del Web. Hola amigos, alguien conoce alguna funcion de php que teniendo definido un array permita insertar elementos en cualquier posicion del array? El array esta definido ...
  #1 (permalink)  
Antiguo 12/04/2007, 08:28
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
insertar un elemento en cualquier posicion de un array

Hola amigos,

alguien conoce alguna funcion de php que teniendo definido un array permita insertar elementos en cualquier posicion del array?

El array esta definido asi:
$lista = array();

y mi objetivo es que sea un array de objetos, es decir, que cada elemento sea una instancia de una clase ...

array_push() y array_unshift() insertan al final y al inicio, me gustaria saber si se podria insertar en medio ...

He estado buscando en las funciones de array de php pero no he encontrado o no he sabido encontrar nada ...

alguna sugerencia?

gracias por adelantado.

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #2 (permalink)  
Antiguo 12/04/2007, 10:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: insertar un elemento en cualquier posicion de un array

Código PHP:
$array = array();
$arandompos 5;
$array[$arandompos] = new objeto();
$array[3] = new objeto();
// y asi.. 
  #3 (permalink)  
Antiguo 12/04/2007, 13:14
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: insertar un elemento en cualquier posicion de un array

Hola
Pues podrias intentar con next, te dejo un enlace

http://www.desarrolloweb.com/articulos/310.php
http://www.desarrolloweb.com/articulos/1290.php
http://www.hospedajeydominios.com/ma...las_array.html
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
  #4 (permalink)  
Antiguo 12/04/2007, 15:54
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: insertar un elemento en cualquier posicion de un array

Un comentario:

http://www.php.net/arraypush
Cita:
Iniciado por PHP.net
Nota: Si usa array_push() para agregar un elemento a la matriz, es mejor usar $array[] = porque de esa manera no se tiene la carga de llamar a una función.
Un saludo,
  #5 (permalink)  
Antiguo 13/04/2007, 02:30
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
De acuerdo Re: insertar un elemento en cualquier posicion de un array

Hola,

gracias por vuestras respuestas, amigos,

Finalmente me he creado una funcion que me sirve, mientras busco algo mejor:

Código PHP:
function insertar($,array,$elemento,$pos) {
        
    if(
$pos 0) {
        return;
    }
        
    
## si la posicion es mayor que el tamaño de la lista
    ## el nodo se inserta al final
    
if($pos>=count($array) ) {
        
array_push($array,$elemento);
        return;
    }
        
    
$listaaux=array(); # array auxiliar
        ## buscamos la posicion en el array, para ello las posiciones anteriores
        ## las guardamos en el array auxiliar
    
for($cont=0;$cont<$pos;$cont++) {
        
$listaaux[] = array_shift($array);
    }
    
        
## ahora se inserta el elemento al principio del array original
    
array_unshift($array,$elemento);

        
## ahora recorremos el array auxiliar desde el final y vamos insertando
        ## sus elementos al principio del array original
    
if(count($listaaux)>0) {
        for(
$i=count($listaaux)-1;$i>=0;$i--) {
            
array_unshift($array,$listaaux[$i]);
        }
    }

Dejo aqui esta funcion por si a alguien le interesa, ok? O por si alguien quiere y puede mejorarla, en cuyo caso estaré encantado :)

saludos y gracias de nuevo a todos.

__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
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 16:50.