PHP7.4升级至PHP8后Highcharts无法显示,join()函数报错求助
问题解决方法
错误原因
PHP 8.0 严格规范了join()(implode()的别名)的参数顺序,不再支持颠倒分隔符与数组的位置。你原代码中join($tempA24, ',')把数组放在第一个参数位,不符合PHP8.0的类型要求,直接抛出类型错误。同时,$tempA24是二维数组,直接拼接也无法生成Highcharts所需的嵌套数组格式。
修复步骤
1. 转换数组格式
先将二维数组中的每个子项转换为Highcharts能识别的[时间戳, 值]字符串格式:
$formattedData = array_map(function($item) { return '[' . $item[0] . ',' . $item[1] . ']'; }, $tempA24);
2. 正确使用拼接函数
使用符合PHP8.0规范的implode()(或join())参数顺序,拼接转换后的数组:
data: [<?php echo implode(',', $formattedData); ?>],
简化写法(二合一)
也可以直接合并为一行代码,减少变量声明:
data: [<?php echo implode(',', array_map(function($item) { return '[' . $item[0] . ',' . $item[1] . ']'; }, $tempA24)); ?>],
效果说明
修复后生成的内容会是[[1667131200000,21],[1667134800000,22]],完全符合Highcharts数据系列的格式要求,同时兼容PHP8.0的语法规范。
内容的提问来源于stack exchange,提问作者Kai L.
相关产品推荐
相关产品推荐

