2015-05-22 71 views
0

我有兩個陣列這樣笨:如何使用兩個陣列

陣列以執行數學運算1

array(3) { [0]=> float(2.7742631687417) [1]=> float(2.5949809043991) [2]=> float(3.0174025996932) } 

陣列2

array(3) { [0]=> float(2.7259998526469) [1]=> float(3.4826656582587) [2]=> float(3.2284968891602) } 

該數組是動態,所以數組的大小並不總是數組(3)。有時數組的大小有數組(2),數組(4),數組(5)。 該陣列僅作爲示例

我想使用循環函數使用數組中的值來執行數學運算。數學公式,如果我做手工是這樣

例如:

V1 = 2.7742631687417/(2.7742631687417 + 2.7259998526469)

V2 = 2.5949809043991/(2.5949809043991 + 3.4826656582587)

V3 = 3.0174025996932/(3.0174025996932 + 3.2284968891602)

在從現有的值所獲得的數值陣列。 「V」數量取決於陣列上存在多少個索引。例如陣列(3),然後「V」也總計3(V1,V2,V3)。

所以我如何執行數學運算並將其存儲到數組中呢?我使用PHP和CodeIgniter

+0

如果你有你的答案,請選擇一個,並關閉問題... –

回答

1

根據您的描述,似乎您想要將array1的值除以array1和array2的值的總和。該代碼將是:

$arrlength = count($arr1); 
    for($x = 0; $x < $arrlength; $x++) { 
     $arr3[$x]=$arr1[$x]/($arr1[$x]+$arr2[$x]); 
      } 
+0

我已經跟隨你的算法,但結果並不如我所料。我不知道爲什麼 我得到的結果是這樣的 'array(3){[0] => float(0.50438736437759)[1] => float(0.42697134123315)[2] => float(0.48310136995931)}' 我應該得到的數組是這樣的 'array(3){[0] => float(0,495612636)[1] => float(0,573028659)[2] => float(0 ,''@GoodLuck –

+0

您可能將array2劃分爲array1和areay2的總和,而不是將array1劃分爲這兩個數組的總和。 –

2

這裏是你所寫的內容在您的示例陣列,所以如果你創建一個函數,並通過2陣列任意長度它會計算並儲存在另一個數組名爲$ R這是動態這裏。

 $a = array(2.7742631687417,2.5949809043991,3.0174025996932); 
    $b= array(2.7259998526469,3.4826656582587,3.2284968891602); 

    for($i=0; $i<count($a);$i++){ 
      $r[] = $a[$i]/($a[$i] + $b[$i]); 
    } 
    print_r($r); 

問候