PHP - array_push o append de un array a otro

 
Vista:
Imágen de perfil de max

array_push o append de un array a otro

Publicado por max (2 intervenciones) el 12/04/2022 06:09:03
Hola, estoy aprendiendo sobre iteraciones. Tengo dos arrays y necesito incluir los datos de uno por cada objeto de otro, me explico con esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array1 (
[0] => 2022-11-06
[1] => 2022-11-07
)
 
Array2 (
[0] => Array ( [hora] => 08:00 [id] => 27 )
[1] => Array ( [hora] => 09:00 [id] => 27 )
)
 
Array que debe quedar (
[0] => Array ( [hora] => 08:00 [id] => 27 [0]=> 2022-11-06)
[1] => Array ( [hora] => 09:00 [id] => 27 [0]=> 2022-11-06)
[2] => Array ( [hora] => 08:00 [id] => 27 [1] => 2022-11-07)
[3] => Array ( [hora] => 09:00 [id] => 27 [1] => 2022-11-07)
 
)


¿alguna idea? ¿algún punto de partida? intente con:

1
2
3
foreach($array1 as $index => $val) {
   array_push($array2,$val);
}


pero no resulta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

array_push o append de un array a otro

Publicado por antonio (16 intervenciones) el 12/04/2022 11:55:48
Si tienes que utilizar array_push esta seria la forma de hacerlo:
<?php
$array1 = array (
0 => "2022-11-06",
1 => "2022-11-07",
);

$array2 = array (
0 => array ( "hora" => "08:00", "id" => 27 ),
1 => array ( "hora" => "09:00", "id" => 27 ),
);
$num = 0;
$array3 = array ();
for ($i=0;$i<sizeof($array2);$i++){
for ($j=0;$j<sizeof($array1);$j++){
array_push($array3,$array2[$i]);
array_push($array3[$num],$array1[$j]);
$num = $num+1;
}
}
print_r($array3);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de max

array_push o append de un array a otro

Publicado por max (2 intervenciones) el 12/04/2022 16:05:40
Increíble eso era lo que necesitaba, que genialidad tu código! eso si me agregaba objetos extras dependiendo del largo del array1 así que solamente por si alguien alguna vez le sirve este post, dejo un pequeño arreglo basado 100% en tu código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$array1 = array (
0 => "2022-11-06",
1 => "2022-11-07",
);
 
$array2 = array (
0 => array ( "hora" => "08:00", "id" => 27 ),
1 => array ( "hora" => "09:00", "id" => 27 ),
);
 
$lenght = sizeof($array1);
 
$num = 0;
$array3 = array ();
for ($i=0;$i<sizeof($array2);$i++){
for ($j=0;$j<$lenght;$j++){
array_push($array3,$array2[$i]);
array_push($array3[$num],$array1[$j]);
$num = $num+1;
}
}
print_r(array_slice($array3,0,-$length));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar