PhP如何用变量行计算矩

时间:2014-11-08 00:44:10

标签: php arrays json angular-momentum

我有45-50个数组rowss,它们是标准PhP数组字符串格式的反序列化json返回值,来自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中设置它的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

只需使用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;