2014-02-26 42 views
0

我有一個劇本,我從數據庫中檢索多個值,我把它們存儲在以下變量:如何讓php根據for循環中的計數器使用某個變量?

$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>'; 
    } 
} 

我的問題是我如何告訴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?

謝謝!

+0

經過一些代碼編輯,現在它工作:) – Pathros

回答

1

你可以存儲陣列中的數據庫值,並且使用計數器作爲其索引:

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

注意從$計數器變更= 1〜$計數器= 0,作爲數組的索引從0開始(例如在上面的數組中,$array[0] = "foo"$array=[2] = "hello"

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>'; 
    } 
}