Создание объекта JSON с использованием PHP

Как я могу создать или создать объект JSON этого типа с помощью PHP?

{ "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)); 

 $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); 

Попробуйте использовать это

 $arrayDateAndMachine = array( array("1999","3.0"), array("2000","3.9") ); 

квадратные скобки [] в 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)); 

Я предпочитаю следующий синтаксис, который получает желаемый результат и ясен:

 $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», вы можете объединить эти значения с кавычками.

Выполнение чего-то подобного должно работать, если вы хотите объявить его только как 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] ]}';