Foros del Web » Programando para Internet » PHP »

unir dos array, respetando los indices

Estas en el tema de unir dos array, respetando los indices en el foro de PHP en Foros del Web. Hola a todos espero que estén bien: Quería saber si existe alguna función predefinida en php que haga lo siguiente, ya que busqué y no ...
  #1 (permalink)  
Antiguo 24/01/2012, 19:52
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.339
Antigüedad: 11 años, 11 meses
Puntos: 177
unir dos array, respetando los indices

Hola a todos espero que estén bien:

Quería saber si existe alguna función predefinida en php que haga lo siguiente, ya que busqué y no encontre nada:

De 2 arrays hacer uno;



Código PHP:
$array_1 = array( 
                    
'24/01/2012' => 'Evento1',
                    
'25/01/2012' => 'Evento2',
                    
'26/01/2012' => 'Evento3',
                    );



$array_2 = array( 
                    
'24/01/2012' => 'Evento4',
                    
'25/01/2012' => 'Evento5',
                    
'26/01/2012' => 'Evento6',
                    );



$array_resultante = array( 
                    
'24/01/2012' => 'Evento1 Evento4',
                    
'25/01/2012' => 'Evento2 Evento5',
                    
'26/01/2012' => 'Evento3 Evento6',
                    ); 


Necesito unir los dos primeros y obtener un tercero, concanenando sus valores.
Hay alguna funcion predefinida de php que lo haga?
Sino lo tendré que hacer manualmente, no hay problema.



Saludos
__________________
la la la
  #2 (permalink)  
Antiguo 24/01/2012, 20:11
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 10 años, 6 meses
Puntos: 793
Respuesta: unir dos array, respetando los indices

Así como lo quieres no hay, pero por ejemplo esta función array_merge_recursive te puede servir:
Código PHP:
Ver original
  1. $array_1 = array(
  2. '24/01/2012' => 'Evento1',
  3. '25/01/2012' => 'Evento2',
  4. '26/01/2012' => 'Evento3',
  5. );
  6.  
  7.  
  8.  
  9. $array_2 = array(
  10. '24/01/2012' => 'Evento4',
  11. '25/01/2012' => 'Evento5',
  12. '26/01/2012' => 'Evento6',
  13. '27/01/2012' => 'Evento9',
  14. );
  15.  
  16. $result = array_merge_recursive($array_1, $array_2);
  17. echo '<pre>';
  18. print_r($result);
  19. echo '</pre>';

Cita:
Array
(
[24/01/2012] => Array
(
[0] => Evento1
[1] => Evento4
)

[25/01/2012] => Array
(
[0] => Evento2
[1] => Evento5
)

[26/01/2012] => Array
(
[0] => Evento3
[1] => Evento6
)

[27/01/2012] => Evento9
)
de ahí sin complicarlo mucho usar un foreach o una función recursiva:

Código PHP:
Ver original
  1. $arr = array();
  2. $a = '';
  3.  
  4. foreach ($result as $c => $v) {
  5.     $a = '';
  6.     if (is_array($v)) {
  7.         foreach ($v as $v2) {
  8.             $a .= $v2 . ' ';
  9.         }
  10.         $arr[$c] = trim($a);
  11.     } else {
  12.         $arr[$c] = $v;
  13.     }
  14. }
  15.  
  16. echo '<pre>';
  17. print_r($arr);
  18. echo '</pre>';

Cita:
Array
(
[24/01/2012] => Evento1 Evento4
[25/01/2012] => Evento2 Evento5
[26/01/2012] => Evento3 Evento6
[27/01/2012] => Evento9
)
__________________
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; 24/01/2012 a las 20:20
  #3 (permalink)  
Antiguo 24/01/2012, 20:28
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.339
Antigüedad: 11 años, 11 meses
Puntos: 177
Respuesta: unir dos array, respetando los indices

Oh!!! si si, muy buena esa funcion , me servirá.

Se agradece
Saludos
__________________
la la la

Etiquetas: indices
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:02.