PHP - Construir un array en un foreach

 
Vista:
Imágen de perfil de Jorge

Construir un array en un foreach

Publicado por Jorge (5 intervenciones) el 26/04/2023 14:33:53
Buenas tardes,

Necesito construir un array en un foreach que quede exactamente de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
array(
        0 => array(
           'reference' => 'S7906642',
           'quantity' => 1,
        ),
        1 => array(
           'reference' => 'S7903416',
           'quantity' => 1,
        ),
      );

Suponiendo que los valores de reference y quantity los obtengo en un foreach como podría construir ese array en el mismo foreach?

1
2
3
foreach($_SESSION["producto"] as $fila){
 
}
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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Construir un array en un foreach

Publicado por Alejandro (839 intervenciones) el 26/04/2023 17:18:29
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No me queda claro.
1
2
3
4
$mi_array = [];
foreach($_SESSION["producto"] as $fila){
    $mi_array[] = array('reference'=>$fila['reference'], 'quantity'=>$fila['quantity']);
}
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

Construir un array en un foreach

Publicado por Jorge (5 intervenciones) el 26/04/2023 17:51:42
Gracias, pero aun no logro conseguir lo que quiero.

Tengo esto:

1
2
3
4
5
6
7
8
9
10
11
$delivery = [];
$i=0;
foreach($_SESSION["producto"] as $fila){
$delivery['order']['products'] = array(
        $i => array(
           'reference' => $fila["reference"],
           'quantity' => $fila["quantity"],
        ),
      );
$i++;
}

Lo que quiero es que añada nueva información al array pero parece que sobrescribe... el foreach se cumple 5 veces y cuando imprimo en pantalla el array con var_dump($delivery) obtengo esto:

1
array(1) { ["order"]=> array(1) { ["products"]=> array(1) { [5]=> array(2) { ["reference"]=> string(54) "Q4548745" ["quantity"]=> int(1) } } } }

datos del producto nº5 y no de todos
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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Construir un array en un foreach

Publicado por Alejandro (839 intervenciones) el 26/04/2023 18:03:27
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Precisamente sobreescribir es lo que indicas
1
$delivery['order']['products'] = array($i=>array(.....

me parece que lo que intentas es así
1
$delivery['order']['products'][$i] = array('reference' => $fila["reference"],....

y aplicado al primer código que te pase
1
2
3
4
5
6
7
$delivery['order']['products'] = [];
foreach($_SESSION["producto"] as $fila){
        $delivery['order']['products'][] = array(
           'reference' => $fila["reference"],
           'quantity' => $fila["quantity"],
        );
}
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

Construir un array en un foreach

Publicado por Jorge (5 intervenciones) el 27/04/2023 08:50:01
Me funcionó, mil gracias!
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