Foros del Web » Programando para Internet » PHP »

array_push bidimensional

Estas en el tema de array_push bidimensional en el foro de PHP en Foros del Web. Hola compañeros, Estoy tratando de rellenar una array bidimensional del siguiente formato. Código PHP: $tabla  = array( 1 =>array( 10 , 20. ...), 2 =>array( 50 ...
  #1 (permalink)  
Antiguo 04/06/2010, 13:44
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
array_push bidimensional

Hola compañeros,

Estoy tratando de rellenar una array bidimensional del siguiente formato.

Código PHP:
$tabla = array(
1=>array(10,20....),
2=>array(50,15....)            
); 
El problema viene cuando trato de hacer el segundo array_push que no se como hacerlo. Tengo el siguiente código:

Código PHP:
$personal $_POST['personal'];
$tabla = array();
                
    for(
$a=0;$a<$personal;$a++){
                            
        
        if(!empty(
$_POST[$a])){
        
array_push($tabla,$_POST[$a]);
            
                        
//Aqui no se como asignar el segundo array_push
            
foreach($sisdeva->id_proyectos as $proyectos){
            
$coste $_POST[$_POST[$a]."-".$proyectos];
            
array_push(??,$coste);
            }

                 }
         } 
Cualquier sugerencia es bienvenida.

Un saludo!
  #2 (permalink)  
Antiguo 04/06/2010, 13:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: array_push bidimensional

lee el manual
http://php.net/array_push

aunque bueno, viendo tu problema... la solución sería que hagas el push general, ya cuando tengas bien formado el arreglo...

ya que el orden y estructura en la que los intentas agregar está errada, solo ten cuidado con eso... ;)
Código PHP:
array_push($tabla,array($_POST[$a],$coste)); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/06/2010, 13:53
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: array_push bidimensional

Código PHP:
Ver original
  1. $personal=$_POST['personal'];
  2. $tabla=array();
  3. for($a=0;$a<$personal;$a++){
  4.     if(!empty($_POST[$a])){
  5.         //Aqui no se como asignar el segundo array_push
  6.         $segundonivel=array();
  7.         foreach($sisdeva->id_proyectos as $proyectos){
  8.             $coste = $_POST[$_POST[$a]."-".$proyectos];
  9.             $segundonivel[]=$coste;
  10.         }
  11.         if(count($segundonivel)>0){$tabla[]=$segundonivel;}
  12.     }
  13. }

Es decir, primero generas el array del segundo nivel ($segundonivel), si éste contiene elementos lo agregas al primer nivel ($tabla).

De esta forma se genera el array con la estructura como la requieres.
  #4 (permalink)  
Antiguo 04/06/2010, 14:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: array_push bidimensional

Gracias por tu respuesta rpv y pateke,

Lo que comentas rpv tiene sentido, pero donde guardo la info de $_POST[$a]. Tu propuesta saldría así:

$tabla = array(
array(),
array(),
array()
)

Y yo necesito:

$tabla = array(
1=>array(),
2=>array(),
6=>array()
)

Imagino que tendría que asignarle un indice asociativo no?

Un saludo
  #5 (permalink)  
Antiguo 04/06/2010, 14:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: array_push bidimensional

en ese caso array_push() no sirve de mucho, puedes hacerlo directamente...
Código PHP:
$tabla[$indice_nuevo] = array($_POST[$a],$coste); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 04/06/2010, 14:44
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: array_push bidimensional

cuando haces esto:

Código PHP:
Ver original
  1. $tabla[]=$segundonivel;

Haces que PHP coloque índices numéricos automáticos y consecutivos, si quieres que contenga un índice personalizado lo que debes hacer es asignarlo:

Código PHP:
Ver original
  1. $tabla[$indice]=$segundonivel;

donde $indice lo calculas de acuerdo a tus necesidades. Por ejemplo en lugar de índice podría ser $a, el contador de tu primer ciclo, aunque sería igual que dejarlo en blanco, ya que asignaría índices numéricos consecutivos (más ya no serían `automáticos`).


Añado, la estructura del programa que hice sería:

Cita:
$tabla = array(
0=>array(0=>tuelemento0,1=>tuelemento1,...,N=>tuel ementoN),
1=>array(0=>tuelemento0,1=>tuelemento1,...,N=>tuel ementoN),
2=>array(0=>tuelemento0,1=>tuelemento1,...,N=>tuel ementoN),
...,
N=>array(Narray)
)
  #7 (permalink)  
Antiguo 04/06/2010, 15:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: array_push bidimensional

Gracias rpv y pateke me han ayudado mucho.

Un saludo

Última edición por urameshix; 04/06/2010 a las 15:15

Etiquetas: bidimensionales
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 06:42.