我正在处理JS Chart的25个数据点数组。以下是我要完成的任务:
这将创建另一个公式中使用的范围平均值,以确定图表的上限和下限。
这最初是在Excel中计算的,我需要将其移动到数组中以获取数据点的在线图表。
我使用Codeigniter通过查询拉取我的数组。
$this->db->select('datapoint');
$this->db->from('my_table LIMIT 25');
$this->db->where('gauge=', '18');
$query = $this->db->get();
这提供了我的数组,我回到了图表的一行JavaScript(HighCharts)。
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然后我可以将该值添加到我的图表中。
非常感谢任何帮助。
谢谢,
答案 0 :(得分:0)
$valueDiff = array();
foreach ($query->result() as $row){
$value = $row->datapoint;
for ($i = 0, $n = count($value) - 1; $i < $n; $i++) {
//Subtract the next value from the previous value, i.e. $value[0] - $value[1]
//Take that resulting value and assign it to another array of values
//Take the absolute value of each in the new array and divide by 24.
$valuesDiff[$i] = abs($value[$i] - $value[$i+1]) / 24;
}
}
echo "<pre>";
print_r($valuesDiff);
echo "</pre>";
答案 1 :(得分:0)
感谢您帮助@ElMarce,但需要更多代码才能正常工作。我不得不添加第二个数组,并更改了一些变量名称。
此代码用于创建Range Average,然后使用HighCharts和Codeigniter确定SPC图表的上限和下限。这是解决这个问题的正确方法吗?我不确定,但它确实适用于我需要的东西。感谢大家的帮助。
$rangeArray = array();
$value = array();
$rangeAvg = 0;
foreach ($query->result() as $row) {
$value[] = $row->pull_force;
for ($i = 0, $n = count($value) - 1; $i < $n; $i++) {
$rangeArray[$i] = abs($value[$i] - $value[$i+1]);
$rangeAvg = array_sum($rangeArray) / 24;
}
}