2009-08-02 83 views
0

我有兩個索引數組$測量[]和$的diff [],這可能與PHP

$測量[]充滿了從數據庫值和$的diff []從函數獲得值這計算兩次測量的差異。

當我在$ measurements []中有不同的度量值的集合時,我想爲$ diffs []數組中的一個數組元素添加一個值,然後遍歷它,然後檢查數組元素$ measurements []數組中相應的索引數組元素可從此處扣除。

我試圖完成的是當我有一個測量集合時,從相應的測量中扣除一個特定的差異。

這可能在PHP中,我將如何去做這件事。

編輯:以使其更具描述(英語不是我的第一語言也不是php)

$measurements Array ([0] => 1469 [1] => 1465 [2] => 739 [3] => 849) 

$diffs Array ([0] => 0 [1] => 0 [2] => 0 [3] => 0) 

我想更新$ diff文件數組索引[2] => 200,使其成爲

Array ([0] => 0 [1] => 0 [2] => 200 [3] => 0) 

,然後在這種情況下739從$測量數組索引[2]減去$ diff文件數組索引[2] - 200

我很希望這使得它更加清楚。

+0

您可以編輯該問題,使其更具描述性?有了這樣的問題,我不想幫你 – Graviton 2009-08-02 14:40:37

回答

4

我相信這是可能的......這聽起來像只需要幾個foreach es和一些基本的算術。

但比這更具體,我不能幫你。我無法理解你對這個問題的描述。


編輯:現在,在桌子上的更多信息,代碼是不是所有的複雜。這是我會怎麼做:

foreach ($measurements as $index => $measurement) { 
    $measurements[$index] -= $diffs[$index]; // subtract the negative difference from the measurement. 
    unset($diffs[$index]);   // clear the modifier after use. 
} 

通過$measurements陣列中的每個元素此代碼迭代,並減去在$diffs對應的索引的數。此代碼不要求$diffs$measurements匹配,因爲PHP會將缺少的索引值強制爲零。

0

如果你的數組是100,可能是這樣的。語法可能關閉,並像以前的海報不知道我是否理解你的問題。

for ($counter = 0; $counter <= 100; $counter += 1) { 
    $measurements[$counter] = $measurements[$counter] - $diff[$counter]; 
} 
+0

$ counter <= 100?! – iBiryukov 2009-08-02 15:59:09

0

如果我理解正確的話,你要首先更改$ diff文件數組中的東西,然後從$測量陣列,其中索引對應的元素數組中只減去更新的元素。

我想你必須做出$ diff文件的副本,然後再進行更改,然後把它比原來的一個(如通過使用的foreach())和更新的值,如果有東西在特定索引處更改。

'打擾我,如果我誤解了!

0

回答您的問題:「是」和「努力」