动态填充json变量

问题描述 投票:0回答:1

我试图用数据库中的数据动态填充我的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字符串,其中包括卷,并以某种方式将其传递给json变量的每个条目。

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

另外我应该提一下,json变量需要是动态可扩展的,因为每个单元可能有超过3个卷。

javascript php json charts chart.js
1个回答
1
投票

你能试试这个:

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

结果 :

string(118) "{"L":[{"y":"100"},{"y":"50"},{"y":"40"}],"C":[{"y":"61"},{"y":"39"},{"y":"59"}],"":[{"y":"31"},{"y":"97"},{"y":"67"}]}"
© www.soinside.com 2019 - 2024. All rights reserved.