用PHP中的数组除以前一个值?

时间:2014-11-16 06:46:28

标签: php arrays math

嘿所以我有一个16,000个值的数组,但我会在这里简化问题。我想将每个数组值除以前一个,然后将其输出到一个新数组。这就是我所说的:

$close = array(100,101,99,98,99,103,102);

基本上我希望它从[1]开始并除以[0],然后再做[2]并除以[1],依此类推,这样我就有了一个新数组:

$new = array(1.01, 0.98, 0.99, 1.01, 1.04, .99);

基本上,我这样做是因为我希望每天看到股票价格的变化百分比,因为我已经有了收盘价。

感谢您的帮助!

5 个答案:

答案 0 :(得分:0)

这应该适合你:

<?php

    $close = array(100,101,99,98,99,103,102);
    $new = array();

    foreach($close as $k => $v) {

        if($k == 0)
            continue;

        $new[] = round($close[$k]/$close[$k-1], 2);
    }

    print_r($new);


?>

输出:

Array
(
    [0] => 1.01
    [1] => 0.98
    [2] => 0.99
    [3] => 1.01
    [4] => 1.04
    [5] => 0.99
)

答案 1 :(得分:0)

<?php
$close = array(100,101,99,98,99,103,102);
$new=array();
for ($i=1; $i <count($close) ; $i++) { 
    $new[]=$close[$i]/$close[$i-1];
    round($new[$i-1],2);
}
print_r($new);

答案 2 :(得分:0)

演示here

您可以使用单个for循环执行此操作,如:

$close = array(100,101,99,98,99,103,102);
$new = array();

for ($i=1; $i <count($close) ; $i++) { 
    $val = round($close[$i] / $close[$i-1], 2);
    array_push($new, $val); 

}
var_dump($new);

这会给你:

array(6) {
  [0]=>
  float(1.01)
  [1]=>
  float(0.98)
  [2]=>
  float(0.99)
  [3]=>
  float(1.01)
  [4]=>
  float(1.04)
  [5]=>
  float(0.99)
}

答案 3 :(得分:0)

我想以下答案可以帮到你:

<?php
$array = array(100,101,99,98,99,103,102);
$newArray = array();
$count = count($array);
for($i = 1; $i < $count; $i++){
    $newArray[] = round($array[$i] / $array[($i - 1)], 2);
}

print_r($newArray);
?>

如果您需要任何帮助,请告诉我。

此致

答案 4 :(得分:0)

    <?php
        for ($i = 1; $i < count($close); $i++) {
            $new[] = $close[$i] / $close[$i-1];
        }
    ?>

这应该可以解决问题!