嘿所以我有一个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);
基本上,我这样做是因为我希望每天看到股票价格的变化百分比,因为我已经有了收盘价。
感谢您的帮助!
答案 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)
您可以使用单个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];
}
?>
这应该可以解决问题!