У меня есть 45 — 50 строк массива, которые десериализованы возвращаемые значения JSON в стандартном формате строки массива PhP, из cURL с данными, которые выглядят следующим образом:
Array
(
[0] => 0.00634000
[1] => 20.54182841
)
Array
(
[0] => 0.00637479
[1] => 31.21047749
)
Array
(
[0] => 0.00637480
[1] => 2.23450852
)
....
var_dump данных var_dump
Мне нужно выполнить следующие математические вычисления с возвращаемыми данными (обратите внимание на прирост 1,2,3 ..)
((1 * 0.00634000 * 20.54182841) + (2 * 0.00637479 * 31.21047749) + (3 * 0.00637480 * 2.23450852)) / ((0.00634000 * 20.54182841) + (0.00637479 * 31.21047749) + (0.00637480 * 2.23450852))
....
предполагая, что следующие 3 элемента массива
0.1302351921194 + 0.3979204795969542 + 0.042733634739888 / 0.1302351921194 + 0.1989602397984771 + 0.014244544913296
затем
0.5708893064562422 / 0.3434399768311731
array moments = 1.662268067112285
array length = 3
Как правильно настроить это в PhP, если вы не знаете, сколько строк будет в массиве?
Просто использовать foreach()
, Пример:
$var1 = 0; $var2 = 0; $count = 0;
foreach($arr as $k=>$v){
if(is_numeric($v[0]) && is_numeric($v[1])){
$var2 += $v[0] * $v[1];
$var1 += $var2 * ($k + 1);
$count++;
}
}
$result = $var1 / $var2;
echo 'Result: ' . $result . '<br /> Count: ' . $count;
Других решений пока нет …