0

我有一个脚本,我从数据库中检索多个值并将它们存储在以下变量中:

$Av_1o=99;
$Av_2o=100;
$Av_3o=80;
$Av_4o=70;
$Av_5o=90;
$Av_6o=110;
$Av_7o=120;
$Av_8o=110;
$Av_9o=90;
$Av_10o=88;
$Av_11o=99;
$Av_12o=100;
$Av_13o=101;

然后,根据另一个变量,例如年份,我必须在计数器中设置一个最大值(命名为:$top_counter):

//defining year:
$year=2009;
            switch($year){
        case 2008:
            $top_counter=13;
            break;
        case 2009:
            $top_counter=11;
            break;
        case 2010:
            $top_counter=9;
            break;
        case 2011:
            $top_counter=7;
            break;
        case 2012:
            $top_counter=5;
            break;
        case 2013:
            $top_counter=3;
            break;
        case 2014:
            $top_counter=1;
            break;
        default:
            $top_counter=NULL;
    }

最后,我使用了一个for 循环

for($counter=1;$counter<=$top_counter;$counter++){
  $variable_name='Av_'.$counter.'o';
  if($$variable_name>=100){
    echo '<p style="color: green;">'.$variable_name.' is equal or greater than 100</p>';
  }
}

我的问题是如何根据相应的数字($counter)告诉php使用哪个变量(在顶部声明)?

对于这种情况,当年份为 2009 年时,我得到的输出如下:

Av_2o is equal or greater than 100

Av_6o is equal or greater than 100

Av_7o is equal or greater than 100

Av_8o is equal or greater than 100

如何打印变量名?或者确切地知道我当前使用的是哪个 $Av_xo?

谢谢!

4

2 回答 2

1

您可以将数据库值存储在数组中,并将计数器用作其索引:

$array = array("foo", "bar", "hello", "world");
for($counter=0; $counter<=$top_counter;$counter++){
    var_dump($array[$counter]);
}

注意从 $counter=1 到 $counter=0 的变化,因为数组的索引从 0 开始(例如在上面的数组中,$array[0] = "foo"$array=[2] = "hello"

于 2014-02-26T00:10:24.977 回答
1

我不会使用标准变量来执行此操作。您不仅要创建不确定数量的变量,而且基本上是在构建一个数组,它更容易管理您想要做的事情。

$av = array();
while($row = mysqli_fetch_assoc($someresultset)) $av[] = $row['field'];

for($counter=1;$counter<=$top_counter;$counter++){
  if($av[$counter] >= 100){
    echo '<p style="color: green;">'.$av[$counter].' is greater than 100</p>';
  }
}
于 2014-02-26T00:15:22.870 回答