0

作为一个 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或其他循环方式 做这个计算

4

3 回答 3

1

你的数组语法有点不对劲。应该是$effect['a'][0]

循环是微不足道的,并且foreach是正确的想法。
您可以使用它来遍历所有字母:

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

     ...

 }

然后将您的分配/除法行放入循环中,用变量替换固定等'a''b'$letter

于 2013-02-22T02:30:45.937 回答
0

You need something like this?

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

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

}

print_r($results);
于 2013-02-22T02:32:54.883 回答
0

Also one counter-intuitive thing in PHP, is that arrays are passed by value by default. You can use & to get a reference to the array

$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 );
于 2013-02-22T02:36:23.367 回答