{
"label": "Devices per year",
"data": [
[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]
]
}
Après plusieurs tentatives, je n'ai pas trouvé la solution .
$arrayDateAndMachine = array(
"1999"=>3.0,
"2000"=>3.9
);
$arr = array(
"label" => "Devices per year",
"data" => $arrayDateAndMachine
);
var_dump(json_encode($arr));
$obj = new stdClass();
$obj->label="Devices per year";
$obj->data = array(
array('1999','3.0'),
array('2000','3.9'),
//and so on...
);
echo json_encode($obj);
Essayez d'utiliser ceci
$arrayDateAndMachine = array( array("1999","3.0"),
array("2000","3.9")
);
les crochets []
dans json
est un tableau donc vous devez le faire comme ceci
<?php
$arrayDateAndMachine = array(
array(1999, 3.0),
array(2000, 3.9),
);
$arr = array("label" => "Devices per year",
"data" => $arrayDateAndMachine);
var_dump(json_encode($arr));
Je préfère la syntaxe suivante qui donne le résultat souhaité et qui se lit clairement:
$ar = array(
"label" => "Devices per years",
"data" => array(array(1999, 3.0), array(2000, 3.9) )
);
var_dump(json_encode($ar));
La seule différence est que dans la sortie "3.0" est rendu par "3". Si vous avez besoin du ".0" final, vous pouvez entourer ces valeurs de guillemets.
Faire quelque chose comme ça devrait marcher si vous voulez le déclarer en JSON uniquement et non en utilisant json_encode. Cela élimine également le besoin de déclarer plusieurs variables pour chacun des tableaux à l'intérieur. Mais ce ne serait une solution viable que si le contenu du tableau pour les données est fini.
$json_string = '{
"label": "Devices per year",
"data": [
[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]
]}';