Foros del Web » Programando para Internet » PHP »

* Obtener índices de una matriz (array multidimensional)

Estas en el tema de * Obtener índices de una matriz (array multidimensional) en el foro de PHP en Foros del Web. Hola amigos y amigas. En una aplicación web, tengo una matriz llamada "carrito" (el sitio que estoy desarrollando es para manejo de carrito de compras). ...
  #1 (permalink)  
Antiguo 13/12/2011, 09:38
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 1 mes
Puntos: 7
Pregunta * Obtener índices de una matriz (array multidimensional)

Hola amigos y amigas.

En una aplicación web, tengo una matriz llamada "carrito" (el sitio que estoy desarrollando es para manejo de carrito de compras). Es algo como esto:


Código PHP:
Ver original
  1. $carrito = array("articulo" => array("tv1" => 5, "tv3" => 9, "tv5" => 2));

Suponiendo que es una tienda virtual de televisores, guardo el ID ó nombre del artículo dentro del índice ("tv1", "tv3", "tv5",...). Y como valor, la CANTIDAD que el comprador virtual desea (5, 9, 2,...).

Me explico! Si Juan quiere comprar 1 tv marca "tv1" y 2 marca "tv3" deseo mostrar los artículos (TV's) comprados hasta el momento.
Algo así:

Código:
CARRITO

Artículo: TV1   | Cantidad: 1
Artículo: TV3   | Cantidad: 2

Para eso estoy usando la siguiente función que encontré:

Código PHP:
foreach ($carrito as $indices_articulos) { # 1

    
$conta 1;
    foreach (
$indices_articulos as $cantidad) { # 2
 
      
$cadena $cadena."Artículo. ".$conta." |  Cantidad: ".$cantidad."<br />";
      
$conta++;
   } 
# Cierre 2

}  # Cierre 1

echo $cadena

Con el código anterior, se imprime en pantalla el siguiente:

Código:
Artículo 1    Cantidad: 1
Artículo 2    Cantidad: 2
Sin embargo, yo deseo mostar:
Código:
Artículo TV1    Cantidad: 1
Artículo TV3    Cantidad: 2
Cuando concateno, según esta instrucción:

Código PHP:
$cadena $cadena."Artículo. ".$conta." |  Cantidad: ".$cantidad."<br />"
En lugar de usar la variable "$conta", deseo agregar el nombre del artículo ("TV1", "TV3",...) por medio del índice. El problema es que no sé que debo usar ó como hacerlo ?

Le agradezco alguno que me pueda orientar. Gracias.
Saludos
__________________
Loading...
  #2 (permalink)  
Antiguo 13/12/2011, 09:50
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: * Obtener índices de una matriz (array multidimensional)

Probá asi:

Código PHP:
Ver original
  1. foreach ($carrito as $indices_articulos) { # 1
  2.  
  3.     foreach ($indices_articulos as $producto => $cantidad) { # 2
  4.  
  5.       $cadena = $cadena."Artículo. ".$producto." |  Cantidad: ".$cantidad."<br />";
  6.  
  7.    } # Cierre 2
  8.  
  9. }  # Cierre 1
  10.  
  11. echo $cadena;

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 13/12/2011, 09:53
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: * Obtener índices de una matriz (array multidimensional)

Te explico.

Si escribes el foreach así:
Código PHP:
foreach ( $array as $indice => $valor ) {
  echo 
"Estoy en el elemento $indice que tiene $valor<br>";

Así obtienes los indices tb.
__________________
>> Eleazan's Source
>> @Eleazan
  #4 (permalink)  
Antiguo 13/12/2011, 11:21
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 1 mes
Puntos: 7
De acuerdo Respuesta: * Obtener índices de una matriz (array multidimensional)

Saludos amigos.

Gracias, muchas gracias por su aporte.
Ya resolví el problema de la siguiente forma:


Código PHP:
foreach ($carrito as $indices_articulos) { #1
    
foreach ($indices_articulos as $producto=>$cantidad) {#2
       
$cadena $cadena."Art. ".$producto." &nbsp;&nbsp;&nbsp;Cantidad:&nbsp;".$cantidad."<br />";
    }
}
    
echo 
$cadena
Gracias ambos por la ayuda brindada.
Saludos.
__________________
Loading...

Etiquetas: foreach, carritodecompras
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 17:10.