Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] recorrer varios valores de diferentes array

Estas en el tema de recorrer varios valores de diferentes array en el foro de PHP en Foros del Web. Tengo 3 columnas en mi tabla con las que quiero trabajar y almaceno en la tabla de la siguiente manera: Código: cantidad 3,5,8 concepto pinzas,martillo,tornillo ...
  #1 (permalink)  
Antiguo 05/03/2018, 10:29
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
recorrer varios valores de diferentes array

Tengo 3 columnas en mi tabla con las que quiero trabajar
y almaceno en la tabla de la siguiente manera:

Código:
cantidad
3,5,8
concepto
pinzas,martillo,tornillo
precio
30,50,15
pero al imprimir la informacion quiero acomodarlo de la siguiente manera:

3 pinzas $30 $90
5 martillo $50 $250
8 tornillo $15 $120

estaba intentando hacerlo con foreach, pero no logro resolverlo, alguien tiene alguna idea que me pueda ayudar, de antemano gracias
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 05/03/2018, 11:09
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: recorrer varios valores de diferentes array

Imagino sería algo así:

Código PHP:
Ver original
  1. $array = array(
  2.     'cantidad'  =>  array('3','5','8'),
  3.     'concepto'  =>  array('pinzas','martillo','tornillo'),
  4.     'precio'    =>  array('30','50','15')
  5. );
  6.  
  7. for($i=0; $i < count($array['cantidad']); $i++){
  8.     echo "<li>Concepto: ".$array['concepto'][$i].", Cantidad: ".$array['cantidad'][$i].", Precio: $".$array['precio'][$i]."</li>";
  9. }

Ver Muestra
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 05/03/2018, 12:36
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: recorrer varios valores de diferentes array

suponiendo que te queda este arreglo
Código PHP:
Ver original
  1. $array = array(
  2.     'cantidad'  =>  array('3','5','8'),
  3.     'concepto'  =>  array('pinzas','martillo','tornillo'),
  4.     'precio'    =>  array('30','50','15')
  5. );
Es muy sencillo con array_map lograr la nueva estructura
Código PHP:
Ver original
  1. $transpose = array_map(function($item){
  2.     return $map[] =[
  3.             'cantidad' => $item[0],
  4.             'concepto' => $item[1],
  5.             'precio' => $item[2],
  6.         ];
  7. }, array_map(null, $array['cantidad'], $array['concepto'], $array['precio']));
  8.  
  9. print_r($transpose);
El arreglo resultante $tranpose ya tiene el orden que buscas
http://sandbox.onlinephpfunctions.co...8b4adbeaa45623
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 05/03/2018, 12:57
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: recorrer varios valores de diferentes array

Muchas gracias, lo logre!
Código PHP:
Ver original
  1. $arrayan = explode(", ",$row_cotizacion['cantidad']);
  2.       $array = array(
  3.     'cantidad'  =>  $arrayan,
  4.     'concepto'  =>  explode(", ",$row_cotizacion['conceptos']),
  5.     'precio'    =>  explode(", ",$row_cotizacion['precio'])
  6. );
  7.  
  8. for($i=0; $i < count($array['cantidad']); $i++){
  9.     echo "<tr><td>".$array['cantidad'][$i]."</td><td>".$array['concepto'][$i]."</td><td align=\"right\"> $ ".number_format($array['precio'][$i], 2, ".", ",")."</td><td align=\"right\"> $ ".number_format($array['precio'][$i]*$array['cantidad'][$i], 2, ".", ",")."</li>";
  10.     $sumas[] = $array['precio'][$i]*$array['cantidad'][$i];
  11. }
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México

Etiquetas: tabla
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 18:17.