2013-02-22 59 views
0

作爲PHP初學者,我遇到一個問題,計算在PHP如何實現循環,並計算在PHP中值

$effect=array("a"=>array(1,2),"b"=>array(1,2),"c"=>array(1,2)); 

數組中的元素我只想做的結果,因爲這

$effect['a'][0]=$effect['a'][0]/$effect['a'][1]; 
$effect['b'][0]=$effect['b'][0]/$effect['b'][1]; 
$effect['c'][0]=$effect['c'][0]/$effect['c'][1];  

除了一個,如何做到這一點的計算與的foreach或其他循環方式

+0

所以,你的目標是在第一子陣列的第二個元素到每個子陣列的第一個元素劃分參考? – 2013-02-22 02:29:31

+0

對不起,我犯了一個小錯誤,我的目標是將每個子陣列的第一個元素除以每個子陣列的第二個元素 – andyqee 2013-02-22 02:32:25

+0

@MichaelBerkowski對不起,我犯了一個小錯誤,我修改了索引:my目標是將每個子數組的第一個元素除以每個子數組的第二個元素 – andyqee 2013-02-22 02:33:51

回答

1

你數組的語法是AB做一個它關了。它應該是$effect['a'][0]

該循環是微不足道的,foreach是正確的想法。
你可以用它來遍歷使用的所有字母:

foreach ($effect as $letter => $numbers) { 

    ... 

} 

然後把你的作業/分割線在循環,與$letter變量替換固定'a''b'等。

+0

與我寫的內容是否有區別?「您的數組語法有點偏離,它應該是$ effect ['a' ] [0]「。 – andyqee 2013-02-22 02:45:15

+0

您的原始文章使用了'$ effect('a')[0]',這就是我注意到這一點的原因。 – mario 2013-02-22 03:05:57

0

你需要這樣的東西?

foreach ($effect as $key => $val) 
{ 

    $results[$key] = $val[0]/$val[1]; 

} 

print_r($results); 
+0

感謝您的分享 – andyqee 2013-02-22 02:52:30

0

另外一個在PHP中反直覺的事情是數組默認情況下按值傳遞。您可以使用&才能到陣列

$effects =array("a"=>array(1,2),"b"=>array(1,2),"c"=>array(1,2)); 
foreach ($effects as $key => &$effect) { 
    $effect[0] = $effect[0]/$effect[1]; 
    unset($effect); 
} 
print_r($effects);