Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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
Javascript 动态填充json变量_Javascript_Php_Json_Charts_Chart.js - Fatal编程技术网

Javascript 动态填充json变量

Javascript 动态填充json变量,javascript,php,json,charts,chart.js,Javascript,Php,Json,Charts,Chart.js,我试图用数据库中的数据动态地填充我的chartjs。 数据是特定于卷的(字母和使用百分比) 由于数据库结构的灵活性,我决定将所有卷信息放在一个单元格中,用空格分隔每个卷,用逗号分隔字母和百分比 现在,我需要将此数据动态地放入json变量中,以便将其推送到图表中。目前看起来是这样的: var jsonData = { "L": [{"y": 100}, {"y": 50}, {"y": 40}], "C": [{"y": 61}, {"y": 39}, {"y": 59}],

我试图用数据库中的数据动态地填充我的chartjs。 数据是特定于卷的(字母和使用百分比)

由于数据库结构的灵活性,我决定将所有卷信息放在一个单元格中,用空格分隔每个卷,用逗号分隔字母和百分比

现在,我需要将此数据动态地放入json变量中,以便将其推送到图表中。目前看起来是这样的:

var jsonData = {
    "L": [{"y": 100}, {"y": 50}, {"y": 40}],
    "C": [{"y": 61}, {"y": 39}, {"y": 59}],
    "": [{"y": 33}, {"y": 97}, {"y": 67}]
}
但这些值和体积字母是硬编码的。因此,我需要拆分包含卷的php字符串,并以某种方式将每个条目的php字符串传递给json变量

我需要选择每个字母一次,以及属于对应字母的每个

我还应该提到,json变量需要动态扩展,因为每个单元格可能有3个以上的卷。

您可以尝试以下方法:

<?php

$data = array('L,100 C,61 ,31', 'L,50 C,39 ,97', ' L,40 C,59 ,67');
$result = array();
foreach($data as $key => $element){
    $parts = explode(" ",$element);
    foreach($parts as $part){
        $underParts = explode(',', $part);
        if(isset($underParts[0]) && isset($underParts[1]) ){
        $result[$underParts[0]][]=array('y'=>$underParts[1]);
        }


    }
}


var_dump(json_encode($result));

这个问题是否让你认为这样存储数据是错误的?@RiggsFolly,这是无效的?但是这个图表实际上是用这个值工作的。是的,我知道这可能不是存储数据的最佳方式,但它需要动态存储,我不能在数据库中为每个字母创建一个新属性。可能有50多卷。@Adrian您不需要每个字母都成为属性。动态数据应该是列数据,而不是列名。每个卷和值都应该是表中单独的一行。@riggsfully空字符串是有效的JSON对象键。org说密钥是一个字符串,“字符串是由零个或多个Unicode字符组成的序列,用双引号括起来,”我的朋友,你是个天才。这正是我需要的。谢谢
string(118) "{"L":[{"y":"100"},{"y":"50"},{"y":"40"}],"C":[{"y":"61"},{"y":"39"},{"y":"59"}],"":[{"y":"31"},{"y":"97"},{"y":"67"}]}"