2014-11-08 5 views
1

У меня есть 45 - 50 rowss массива, который десериализации возвращаемых значений JSon в стандартном формате PhP массива строк, из Curl с данными, который выглядит следующие:PhP как вычислить моменты с переменными строками

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)) 
.... 

принимая FO llowing 3 элементов массива

0.1302351921194 + 0.3979204795969542 + 0.042733634739888/0.1302351921194 + 0.1989602397984771 + 0.014244544913296 

затем

0.5708893064562422/0.3434399768311731 

array moments = 1.662268067112285 
array length = 3 

Что бы надлежащим образом установить это в филиппинских, если вы не знаете, что, сколько строк будет в массиве?

+2

Это массив массивов, который возвращается? – slapyo

+0

Да, массив массивов – brad

+0

Зачем вам нужно знать, сколько строк будет в массиве? 'count ($ array)' и 'foreach' позаботиться об этом. – Barmar

ответ

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; 
+1

Вам нужны скобки вокруг '$ k + 1'. – Barmar

+0

Я получаю Уведомление: Неинициализированное смещение строки: 1 в /home/coinz/cryptsy/getDepth.php в строке 12, ссылаясь на эту строку -> $ var2 + = $ v [0] * $ v [1]; – brad

+0

Я думаю, что это проблема с данными. одна секунда – brad