【发布时间】:2013-11-06 15:35:02
【问题描述】:
我正在为一个 JS 图表处理一个包含 25 个数据点的数组。这是我想要完成的任务:
- 上一个值减去下一个值,即$value[0] - $value[1]
- 获取结果值并将其分配给另一个值数组
- 将新数组中每个的绝对值除以 24。
这会创建一个范围平均值,用于在另一个公式中确定图表的控制上限和下限。
这最初是在 Excel 中计算的,我需要将其移动到一个数组中,以获取数据点的在线图表。
我使用 Codeigniter 通过查询拉出我的数组。
$this->db->select('datapoint');
$this->db->from('my_table LIMIT 25');
$this->db->where('gauge=', '18');
$query = $this->db->get();
这提供了我的数组,我将它回显到图表 (HighCharts) 的一行 JavaScript 中。
data: [<?php foreach ($query->result() as $row) { echo $row->datapoint . ',';} ?>],
我尝试了在另一个 stackoverflow 问题上找到的 for 循环,类似于:
foreach ($query->result() as $row){
$value = $row->datapoint;
for ($i = 1, $n = count($value); $i < $n; $i++) {
$value[] = $value[$i] - $value[$i-1];
}
}
echo "<pre>";
print_r($value);
echo "</pre>";
它只提供一个与我正在寻找的值不相近的值。
我只需要一个值,即该数组除以 24,然后我可以将该值添加到我的图表中。
非常感谢任何帮助。
谢谢,
【问题讨论】:
-
$row->datapoint的值是多少? - 你的循环看起来很奇怪。 -
您能否向我们展示您的阵列的外观示例?另外,为什么要使用相同的变量来存储结果?这只会将值(如果有)推送到已经定义的
$values数组。 -
@FritsvanCampen -
$row->datapoint的值是一个包含 25 个数据点的数组。类似于:31.80,31.80,31.80,40.12,34.50,23.88,20.08,37.74,30.76,24.32,14.74,28.70,20.44,35.04,29.54,50.22,25.32,29.74,36.26,3176.64,30.9,3176.64,30.9. ,22.86 @amalmurali - for 循环是我遇到问题的地方,所以我确定它是错误的。 -
单行而不是 25 行是否可以获得预期的结果?如果没有,请提供您刚刚发布的数组的预期输出。
-
@YanBerk 否,因为我需要所有 25 行数据来确定范围平均值。这些数据点有助于确定施加到电线压接上的压力量的容差水平。
标签: javascript php arrays codeigniter highcharts