我正在尝试用数据库中的数据动态填充我的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个卷。
答案 0 :(得分: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"}]}"