0

所以更好的例子(很难给这个问题一个标题)

想象一下我在 php 中有变量,比如

 $number1 = 10;
 $number2 = 30;
 $number3 = 23;

.. 等等..

我只想做一个算术平均值但不喜欢

($number1 + $number2 +$number3)/3 因为打字太多(不止3个数字)

但使用类似的东西

 $temp=0;
 for ($i=1;$i<50;$i++){


 $temp=$temp+$number."$i";   <- this is what I don't know how to define..

 }

和类似的,如何回显数字的所有值,例如

for ($i=1;$i<50;$i++){

 echo $number.$i;   <- but this is not working..

 }

我希望我描述得很好,谢谢你的帮助!

4

4 回答 4

3

它可以用可变变量来完成,但它很难看:

 $temp=0;
 for ($i=1;$i<50;$i++){
     $temp=$temp+(${$number.$i});
 }

变量变量有一个限制,即您不知道数字有多高。您还需要检查是否首先设置了变量。更好的解决方案是将每个变量存储在一个数组中,您可以轻松地对其进行迭代:

 $arr = array();
 $arr[] = 10;
 $arr[] = 30;
 $arr[] = 23;

$temp = 0;
foreach($arr as $val)
{
    $temp += $val;
}
于 2013-06-10T12:29:31.257 回答
1
$number = array(10,20,30);
echo array_sum($number);

另一个解决方案对 for 循环做同样的事情

$number = array(10,20,30);
$count = count($number);
$sum = 0;
for($i = 0; $i < $count ; ++$i) $sum += $number[$i];

或 foreach

$number = array(10,20,30);
$count = count($number);
$sum = 0;
foreach($number as $n) $sum += $n;

例如,有很多方法可以将项目添加到数组中

$number  = array(10,20,30);

$number  = array();
$number[] = 10; $number[] = 20; $number[] = 30;
$number[0]= 10; $number[1] = 20; $number[2] = 30;

$number = array();
array_push($number, 10, 20, 30);   

但最简单和有效的解决方案是使用数组和array_sum()函数。

数组总和- 计算数组中值的总和

于 2013-06-10T12:30:14.403 回答
0

使用数组

$number[0] = 10;
$number[1] = 20;
$number[2] = 23;

for ($i=1;$i<count($number);$i++) {
  echo $number[$i]; //now this works.
}
于 2013-06-10T12:30:04.550 回答
0

将所有这些值放入一个数组而不是不同的变量可能会更好。这使得以后添加更容易,并允许您像这样循环:

foreach($myArray as $number){
    echo $number;
}

如果您仍然想要/需要使用变量,您可以使用变量变量:

$temp=0;
 for ($i=1;$i<50;$i++){

$numberName = "number".$i;
 $temp=$temp + $$numberName;//Note the $$ syntax.

 }

$$foo将是名称存储在 中的变量的值$foo

最后一点。小心变量变量,因为它们会导致代码混乱或不可读。

于 2013-06-10T12:32:05.413 回答