{
"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]
]
}
经过多次尝试后,我找不到解决方案。 例如,我试过这个:
$arrayDateAndMachine = array(
"1999"=>3.0,
"2000"=>3.9
);
$arr = array(
"label" => "Devices per year",
"data" => $arrayDateAndMachine
);
var_dump(json_encode($arr));
答案 0 :(得分:49)
$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);
答案 1 :(得分:6)
尝试使用此
$arrayDateAndMachine = array( array("1999","3.0"),
array("2000","3.9")
);
答案 2 :(得分:4)
[]
中的方括号json
是数组,所以你必须这样做
<?php
$arrayDateAndMachine = array(
array(1999, 3.0),
array(2000, 3.9),
);
$arr = array("label" => "Devices per year",
"data" => $arrayDateAndMachine);
var_dump(json_encode($arr));
答案 3 :(得分:0)
我更喜欢以下语法,它可以获得所需的结果并且可以阅读:
$ar = array(
"label" => "Devices per years",
"data" => array(array(1999, 3.0), array(2000, 3.9) )
);
var_dump(json_encode($ar));
唯一的区别是输出“3.0”呈现为“3”。如果你需要尾随“.0”,你可以用引号括住这些值。
答案 4 :(得分:0)
如果您只想将其声明为JSON而不是使用json_encode,那么执行此类操作应该有效。这也消除了为内部的每个数组声明多个变量的需要。但只有当数据数组的内容是有限的时候,这才是可行的解决方案。
$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]
]}';