计算每个数组值的差异

时间:2010-11-28 19:06:25

标签: php

新手在PHP编程中。我对阵列有一些疑问。如何获得数组中相邻值之间的差异?

$value = array(2, 5, 9, 10, 19);

如何获得2和5之间的差异?然后9和5?那么10和9,然后是19和10? 我想要获得差异的原因是绘制堆栈图。每个堆栈将取决于每个差异。

更新

嗨,对不起,伙计们,完全失去了这个。似乎我不能按照我想要的方式去做。请点击here查看我想要的类似堆叠图。如何为我的数组创建一个比例,这样当我绘制堆积图时,它会自动调整到它的值?

以下是我尝试使用的代码。

<?php
$img_width=200;
$img_height=425; 
$img=imagecreatetruecolor($img_width,$img_height);
$bar_color=imagecolorallocate($img,0,64,128);
$line_color=imagecolorallocate($img,220,220,220);
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$bar_color);

$value = array(116,160,210,269,325,425);
for ($i = 1, $n = count($value); $i < $n; $i++) {
    $diffs[] = $value[$i] - $value[$i-1];
    imageline($img,0,$value[$i]-$value[$i-1],$img_width,$value[$i]-$value[$i-1],$line_color);
}
header("Content-type:image/png");
imagepng($img);
?>

感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

只需使用简单的for循环:

$diffs = array();
for ($i = 1, $n = count($value); $i < $n; $i++) {
    $diffs[] = $value[$i] - $value[$i-1];
}

答案 1 :(得分:-1)

@Gumbo你添加了 $ diffs = array(); 它必须是 $ value

<?php
$value = array(2,5,9,10,19);
for ($i = 1, $n = count($value); $i < $n; $i++) {
    $diffs[] = $value[$i] - $value[$i-1];
}

echo "<pre>";
print_r($diffs);
echo "</pre>";
?>