Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

como formar esta array con json_encode

Estas en el tema de como formar esta array con json_encode en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados, estoy trabajando con la libreria http://www.highcharts.com y estoy intenta crear un clase php que me facilite la vida. En este momento estoy haciendo que ...
  #1 (permalink)  
Antiguo 14/08/2012, 08:29
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 6 meses
Puntos: 12
como formar esta array con json_encode

Estimados,

estoy trabajando con la libreria http://www.highcharts.com y estoy intenta crear un clase php que me facilite la vida.

En este momento estoy haciendo que la clase me genere un grafico de torta al cual debo pasarle una serie en este formato:

Código Javascript:
Ver original
  1. series: [{
  2.             type: 'pie',
  3.             name: 'Browser share',
  4.             data: [
  5.                 ['Firefox',   45.0],
  6.                 ['IE',       26.8],
  7.                 {
  8.                     name: 'Chrome',
  9.                     y: 12.8,
  10.                     sliced: true,
  11.                     selected: true
  12.                 },
  13.                 ['Safari',    8.5],
  14.                 ['Opera',     6.2],
  15.                 ['Others',   0.7]
  16.             ]
  17.         }]

en php tengo algo como el siguiente codigo:
Código PHP:
Ver original
  1. $plano->setSeries('pie', 'Navegadores', array(array('Firefox' => 25), array('Chrome' => 30), array('IE' => 25), array('Opera' => 20)));
  2.  
  3.     public function setSeries($type = null, $name, array $data)
  4.     {
  5.         $this->_series[] = array('type' => $type,'name' => $name, 'data' => $data);
  6.         echo json_encode($this->_series);
  7.     }

la salida es esta:

Código Javascript:
Ver original
  1. series: [{
  2.             "type":"pie",
  3.             "name":"Cosas",
  4.             "data":[
  5.                 {"Firefox":25},
  6.                 {"Firefox":30},
  7.                 {"Firefox":25},
  8.                 {"Firefox":20}
  9.                 ]
  10.         }]

lo que esta dentro de data esta con {} y no con [] que es el requerimiento, por lo cual nace la pregunta ¿que debo hacer para que use [] y no {}


gracias amigos :D
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #2 (permalink)  
Antiguo 14/08/2012, 19:42
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: como formar esta array con json_encode

Tu problema esta en que te confundiste al crear el array de data. Si revisas bien, donde dice "Firefox" no es un índice sino un valor del array (Excepto donde esta lo de name:Chrome). Es decir:

Código PHP:
$data = array(
 array(
'Firefox'25),
 array(
'Firefox'35),
 array(
'name'=>'Chrome''y'=>12.8)
etc...
); 
La funcion json_encode alternará entre [ y { automáticamente.

Etiquetas: formar
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:17.