Foros del Web » Programando para Internet » PHP »

duda con un array y carrito

Estas en el tema de duda con un array y carrito en el foro de PHP en Foros del Web. Hola chic@s; Ahí va una nueva pregunta. Estoy desarrollando un carrito de la compra, y tengo la siguiente pregunta. Almaceno en un array los id ...
  #1 (permalink)  
Antiguo 12/10/2006, 15:11
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 19 años
Puntos: 0
duda con un array y carrito

Hola chic@s;

Ahí va una nueva pregunta.

Estoy desarrollando un carrito de la compra, y tengo la siguiente pregunta.

Almaceno en un array los id de los articulos añadidos al carrito. La duda me surge cuando tengo que mostar los datos. Imaginar que tengo el siguiente array con los id siguientes:

El Array: 2,4,5,8,2,6..... etc etc....

Sabiendo el array se los datos del producto (nombre, precio....), pero quiero mostrar tambien la cantidad de articulos de un mismo producto, es decir, en el array de ejemplo he puesto dos veces el id 2, asi pues no quisiera que me mostrara la linea dos veces sino una, poniendo en cantidad un 2. No se si me explico.

Mi duda es esa, como 'agrupar' los valores de un array o sacar los totales de un valor X.

Gracias!
__________________
Saludos!
  #2 (permalink)  
Antiguo 12/10/2006, 15:34
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues en lugar de ese array utiliza la función array_count_values() que te crea una matriz que tiene por clave los elementos de tu array y por valor tiene cuantas veces se repite y luego obtienes las claves de este nuevo array para que así ya no te muestre números repetidos. Con un ejemplo queda más claro:

Código PHP:
<?php 
$actual 
= array ( 24582);
$cuentaduplicados array_count_values $actual ); 
$mejorado array_keys $cuentaduplicados );
for ( 
$e 0$e count $mejorado ); $e++ )
{
   echo 
$mejorado[$e]."<br/>";
}
?>
Como ves es super sencillo y el array que ahora deberías de utilizar sería el que contiene la variable $mejorado. Espero te haya servido de algo o por lo menos te de una idea. Suerte
  #3 (permalink)  
Antiguo 12/10/2006, 16:12
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 19 años
Puntos: 0
No me ha servido la verdad. Solo me muestra si tengo: 3,4,6,4,5 devuelve: 3,4,6,5

me quita los duplicados.
__________________
Saludos!
  #4 (permalink)  
Antiguo 13/10/2006, 08:07
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Cita:
Iniciado por lanceusp Ver Mensaje
No me ha servido la verdad. Solo me muestra si tengo: 3,4,6,4,5 devuelve: 3,4,6,5. Me quita los duplicados.
Eso era lo que querías ¿no?

Cita:
Iniciado por lanceusp Ver Mensaje
en el array de ejemplo he puesto dos veces el id 2, asi pues no quisiera que me mostrara la linea dos veces sino una
Y es lo que te hice, mira, en el array que deves de fijar tu atención es:

$cuentaduplicados = array_count_values ( $actual );

Ya que como te había mencionado, las claves de este array serán los id de tus artículos (que te lo mostre en el array $mejorado) y sus valores (del array $cuentaduplicados será el número de articulos que pidio con ese id).

Cita:
Iniciado por lanceusp Ver Mensaje
pero quiero mostrar tambien la cantidad de articulos de un mismo producto, es decir, en el array de ejemplo he puesto dos veces el id 2, asi pues no quisiera que me mostrara la linea dos veces sino una, poniendo en cantidad un 2
Pues sólo tienes que mostrar los valores del array $cuentaduplicados ya sea creando otro array como el $mejorado pero esta vez extrayendo los valores, no las claves:

$mejoradoclaves = array_ values($cuentaduplicados);

O hazlo todo de una sóla vez haciendo un foreach, con este ejemplo creo que te quedará mas claro. Cambia el que tenías por este otro:

Código PHP:
<?php  
$actual 
= array ( 24582); 
$cuentaduplicados array_count_values $actual );

foreach ( 
$cuentaduplicados as $claves => $valores )
{
   echo 
"El id del articulo es: ".$claves." y el número de articulos que pidio son: ".$valores."<br/>";
}
?>
Espero haora sí haberme dado a entender mejor y que te sirva de algo. Suerte
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 04:34.