Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2011, 05:20
Avatar de linuxzero
linuxzero
 
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: foreach y conversión de un array a string...

El implode espera un array, no funciona sobre algo que no se un vector, es decir que el implode no funciona sobre string porque lo que hace es recorrer el vector y concatenarlo con un caracter que vos desees.

Lo que podes hacer en tu caso son 2 cosas:

1. Vas acumulando en un array los valores luego del case. Ejemplo:

Código PHP:
Ver original
  1. foreach ($_SESSION['carrito'] as $key => $value) {
  2.     foreach ($value as $key => $value) {
  3.         switch ($key) {
  4.             case 'id':
  5.                 $ids[] = $value;
  6.                 break;
  7.         }
  8.     }
  9. }
  10. echo implode(',', $ids);

O bien podes acumular en una variable todos los strings separados por coma. Algo asi:

Código PHP:
Ver original
  1. $var = "";
  2. foreach ($_SESSION['carrito'] as $key => $value) {
  3.     foreach ($value as $key => $value) {
  4.         switch ($key) {
  5.             case 'id':
  6.                 if (strlen($var) == 0) {
  7.                     $var = $value;
  8.                 } else {
  9.                     $var .= "," . $value;
  10.                 }
  11.                 break;
  12.         }
  13.     }
  14. }
  15. echo $var;

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com