You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现:将未知数量的JSON转为x/y键的多维关联数组

搞定PHP数组键名转换:从label/value转成x/y结构

嘿,我看你现在的代码问题出在只处理了每个数据集里的第一个元素,而且手动设置索引会覆盖之前的内容,根本没遍历所有数据点。来,给你修正后的代码,直接就能得到你想要的数组结构:

完整修正代码

如果你的$charts是包含多个图表数据集的数组(比如多个metingen集合):

$dataPoints = [];
foreach ($charts as $chart) {
    // 遍历当前数据集里的每一个数据条目
    foreach ($chart as $item) {
        // 把label转成x,value转成y,追加到结果数组
        $dataPoints[] = [
            'x' => $item['label'],
            'y' => $item['value']
        ];
    }
}

要是你的$charts直接就是单个metingen的数组(也就是示例JSON里的metingen字段对应的数组),那可以简化成:

$dataPoints = [];
foreach ($charts as $item) {
    $dataPoints[] = [
        'x' => $item['label'],
        'y' => $item['value']
    ];
}

为啥你的原代码不行?

你原来的代码里,每次循环都只取$chart[0](第一个元素),然后把它赋值给$dataPoints[0]——这就导致不管循环多少次,dataPoints里永远只有第一个数据点,后面的全被覆盖了。而用$dataPoints[] = ...会自动往数组末尾追加新元素,完美遍历所有数据。

测试效果

拿你给的示例JSON来说,解析后把$charts设为$jsonData['metingen'],运行代码后$dataPoints就会变成:

array (
    array("x"=>"06-06-2019 13:13:38","y"=>25.21),
    array("x"=>"06-06-2019 13:51:04","y"=>27.69)
)

完全符合图表需要的结构~

内容的提问来源于stack exchange,提问作者RoadTrain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:28:05