2013-02-22 73 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);