Foros del Web » Programando para Internet » PHP »

Formar un array bidimensional a partir de dos arrays

Estas en el tema de Formar un array bidimensional a partir de dos arrays en el foro de PHP en Foros del Web. Buenas tardes amigos ayúdenme con un problemita q tengo con unos arrays. .. Estoy trabajando con un array común($array_aux) y con un array bidimensional($array_plan) para ...
  #1 (permalink)  
Antiguo 29/05/2008, 13:49
 
Fecha de Ingreso: julio-2007
Ubicación: CUENCA - ECUADOR
Mensajes: 61
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Formar un array bidimensional a partir de dos arrays

Buenas tardes amigos ayúdenme con un problemita q tengo
con unos arrays...

Estoy trabajando con un array común($array_aux) y con un array bidimensional($array_plan) para formar un tercer array bidimensional..

Este tercer array tendrá la característica de ser otro array bidimensional en el cual se muestra todos los elementos de array_plan; pero aquí los id's q coincidan de ambos arrays debe mostrar en el tercer array formado como estado = 1 y los elementos que no coincidan deben mostrar como estado= 2.

Los datos que forman estos arrays son dinámicos, tomados de una Base de Datos con anterioridad....pero como ejemplo pongo este código para mostrarles que es lo que quiero hacer....

Código PHP:
//primer array siempre es menor en elementos al segundo array son los elementos que deben coincidir en el segundo array..
$array_aux = array('0'=> 7
                   
'1'=> 63
                   
'2'=> 64
                   
'3'=> 10
             );
//segundo array será siempre mayor en elementos al primer array
//es bidimensional contiene todos los elementos              
$array_plan = array(
                array(
                         
id => 7,
                         
fecha_ini => "2008-03-20",
                         
members => "CABEZAS DIAZ JENNY PIEDAD",
                         
nivel => 1,
                         
comision => 10),

                   array(
                        
id => 63,
                        
fecha_ini => "2008-03-24",
                        
members => "BURGOS  SANCHEZ ARLETTY INES",
                        
nivel => 1,
                        
comision => 10),

                array(
                        
id => 64,
                        
fecha_ini => "2008-03-28",
                        
members => "CASTRO ROBINSON JAVIER LEONARDO",
                        
nivel => 1,
                        
comision => 10),

                array(
                        
id => 95,
                        
fecha_ini => "2008-03-28",
                        
members => "OBELLEIRO RIVERO NATALIA",
                        
nivel => 1,
                        
comision => 10),

                array(
                         
id => 210,
                         
fecha_ini => "2008-05-19",
                         
members => "DEGUILHEM RICAURTE ANA MARIA",
                         
nivel => 2,
                         
comision => 20),
                array(
                     
id => 144,
                             
fecha_ini => "2008-03-10",
                         
members => "SALTOS  ALVARADO ANA JANETH",
                         
nivel => 1,
                         
comision => 10),
                    array(
                         
id => 10,
                            
fecha_ini => "2008-07-08",
                           
members => "NAVARRETE  GOMEZ CHRISTIAN GONZALO",
                         
nivel => 2,
                         
comision => 20),
                    array(
                         
id => 145,
                         
fecha_ini => "2008-03-10",
                         
members => "RODRIGUEZ RIOFRIO ERNESTO",
                         
nivel => 1,
                         
comision => 10)
                    );
    
//aqui quiero formar el tercer array bidimensional lo cual esta haciendo mal algo
    
for($i=0;$i<count($array_plan);$i++){
            for(
$m=0;$m<count($array_aux);$m++){
                if(
array_search($array_aux[$m],$array_plan[$i]) === FALSE){
                        
$bol FALSE;
                }else{
                        
$bol TRUE;
                         break;
                }
            }
            if(
$bol){
                    
$array_final[] = array('id'=> $array_plan[$i]['id'], 'miembro'=> $array_plan[$i]['members'], 'estado'=> '1''nivel'=> $array_plan[$i]['nivel'], 'comision'=> $array_plan[$i]['comision']);
                                                        
            }else{
                    
$array_final[] = array('id'=> $array_plan[$i]['id'], 'miembro'=> $array_plan[$i]['members'], 'estado'=>'2''nivel'=> $array_plan[$i]['nivel'], 'comision'=> $array_plan[$i]['comision']);
            }
    }
$prueba '<pre>'.print_r($array_aux,true). '</pre>';
echo 
$prueba;
$prueba1 '<pre>'.print_r($array_plan,true). '</pre>';
echo 
$prueba1;
$prueba2 '<pre>'.print_r($array_final,true). '</pre>';
echo 
$prueba2
Gracias por su ayuda
  #2 (permalink)  
Antiguo 29/05/2008, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Formar un array bidimensional a partir de dos arrays

No será más sencillo agregar el elemento?

Prueba esto:
Código PHP:
foreach( $array_plan as &$curr ) {
      if( 
in_array$curr['id'], $array_aux ) {
                 
$curr['estado'] = 1;
      } else {
                 
$curr['estado'] = 2;
      }
}

var_dump$array_plan ); 
Saludos.
  #3 (permalink)  
Antiguo 29/05/2008, 15:54
 
Fecha de Ingreso: julio-2007
Ubicación: CUENCA - ECUADOR
Mensajes: 61
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Formar un array bidimensional a partir de dos arrays

Muchas gracias Gatorv, tu solución fue la óptima...........
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 04:29.