Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP创建JSON对象 如何使用PHP实现或创建这种类型的JSON对象?_Php_Json - Fatal编程技术网

使用PHP创建JSON对象 如何使用PHP实现或创建这种类型的JSON对象?

使用PHP创建JSON对象 如何使用PHP实现或创建这种类型的JSON对象?,php,json,Php,Json,经过几次尝试,我没有找到解决办法。 例如,我尝试了以下方法: $arrayDateAndMachine = array( "1999"=>3.0, "2000"=>3.9 ); $arr = array( "label" => "Devices per year", "data" => $arrayDateAndMachine ); var_dump(json_encode($arr)); 试试这个 $arrayDateAn

经过几次尝试,我没有找到解决办法。 例如,我尝试了以下方法:

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

$arr = array(
    "label" => "Devices per year", 
    "data" => $arrayDateAndMachine
);

var_dump(json_encode($arr));
试试这个

$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]
]}';

那没用。。。?您得到的是什么输出?这将把数组中的值作为字符串而不是预期结果中的数字。如果您得到错误“stdClass not found”,请替换新的stdClass();使用\stdClass();(注意类名前面的\)。
$ar = array(
            "label" => "Devices per years",
            "data" => array(array(1999, 3.0), array(2000, 3.9) )
        );

var_dump(json_encode($ar));
$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]
]}';