Javascript PHP/Json:创建一个不带引号的数组(将PAR作为Json)

Javascript PHP/Json:创建一个不带引号的数组(将PAR作为Json),javascript,php,arrays,json,Javascript,Php,Arrays,Json,使用highcharts.js,我需要以数字形式传递序列数据,不带引号 我的实际JSON如下所示: {"name":"SHOP NUM 2","data":"[22377.00,48922.00,24280.00]"} for (i=0;i<data['data'].length;i++) { series.push(data['data'][i]); } 但我需要以这种方式(数据值中没有引号): 这是创建最终数组的PHP:

使用highcharts.js,我需要以数字形式传递序列数据,不带引号

我的实际JSON如下所示:

{"name":"SHOP NUM 2","data":"[22377.00,48922.00,24280.00]"}
for (i=0;i<data['data'].length;i++) {

                series.push(data['data'][i]);

            }
但我需要以这种方式(数据值中没有引号):

这是创建最终数组的PHP:

    $data = array();
    $this->getSerie();

    $data[0]['serie'] = $this->serie;

    $this->getAccount();

    for ($i=1;$i<count($this->account);$i++) {

        $account = $this->account[$i];

        $value = $this->getData($account);

        $data['data'][$i-1]['name'] = $account;
        $data['data'][$i-1]['data'] = $value;
    }

    $this->result = $data;



function getData($id) {

$data = $this->data;

$total = '[';

foreach ($data as $datakey=>$datavalue) {

    if ($datavalue['id']===$id) {

        $subtotal = $data[$datakey]['total'];
        if ($subtotal===null) {
            $subtotal=0.00;
        }
        $total = $total.(float)$subtotal.',';

    }

}

$total = rtrim($total, ",");
$total = $total.']';

return $total;

}
最后一个数组是:

Array
(
    [0] => Array
        (
            [serie] => Array
                (
                    [0] => 2015-07-13
                    [1] => 2015-07-20
                    [2] => 2015-07-27
                    [3] => 2015-08-03
                    [4] => 2015-08-10
                    [5] => 2015-08-17
                    [6] => 2015-08-24
                    [7] => 2015-08-31
                    [8] => 2015-09-07
                    [9] => 2015-09-14
                    [10] => 2015-09-21
                    [11] => 2015-09-28
                    [12] => 2015-10-05
                    [13] => 2015-10-12
                    [14] => 2015-10-19
                )

        )

    [data] => Array
        (
            [0] => Array
                (
                    [name] => SHOP 1
                    [data] => [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
                )

            [1] => Array
                (
                    [name] => SHOP 2
                    [data] => [22377,48922,24280,23007,0,17585,20860,21495,17550,18320,18320,32970,40265,36220,0,41755,18180]
                )

            [2] => Array
                (
                    [name] => SHOP 3
                    [data] => [0,65,0,176,0,950,170,270,110,20,40,70,50,30,210]
                )



        )

)
最后,使用
echo json\u encode($this->result,json\u NUMERIC\u CHECK)我有初始JSON,在“数据”周围加引号

最后,我在javascript的
循环中使用该数据,如下所示:

{"name":"SHOP NUM 2","data":"[22377.00,48922.00,24280.00]"}
for (i=0;i<data['data'].length;i++) {

                series.push(data['data'][i]);

            }

for(i=0;i您可能需要进一步研究使用

您可以将整个回复构建为一个php对象,并在其上使用json_编码来获得一个正确的json对象

$arrayvalue = array("values"  => array(1, 2, 3));
echo json_encode($arrayvalue);
这将输出以下内容:

{"values" : [1,2,3]}
或者简单地说,不要试图通过字符串连接来构造数组,而是使用适当的值生成一个php数组,并让json_encode整理如何将其呈现为json数组


除了可能更简单之外,它还比使用字符串连接构建自己的json回复更干净、更容易理解。

这是正确的答案。但你对他太容易了——这不是“可能想要…”或“尽量不…”的情况;更像是不使用
json\u encode()
!他基本上可以用一行代码来替换几乎所有的代码。我会尽快尝试,暂时谢谢你。@Simba:我不理解你的评论,疯狂还是不疯狂。我来这里是想了解更多。我如何用一行代码优化我的代码?提前谢谢你!@Sinerba-重点是
json\u encode()
函数存在于PHP中,专门设计用于从数组或对象结构构建JSON字符串。因此,假设您从希望JSON结束的格式的PHP数组开始,所有在数组中循环并连接值和逗号的代码和
[]
字符可以替换为单个
json\u encode()
调用。您不需要手动构造json字符串。为什么不进行解释就进行向下投票?