Javascript PHP/Json:创建一个不带引号的数组(将PAR作为Json)
使用highcharts.js,我需要以数字形式传递序列数据,不带引号 我的实际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:
{"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字符串。为什么不进行解释就进行向下投票?