2012-05-23 39 views
2

我發現了一個例子here顯示這樣一個例子:可變的變量,關鍵看我的數組

<?php 
for ($i = 1; $i <= 5; $i++) { 
    ${a.$i} = "value"; 
}  

echo "$a1, $a2, $a3, $a4, $a5"; 
//Output is value, value, value, value, value 
?> 

是否有可能修改像這樣的工作:

for($x=1; $x<11; $x++) 
{ 
    ${title.$x} = $row['${title.$x}']; 
    ${brief.$x} = $row['${brief.$x}']; 
    ${cost.$x} = $row['${cost.$x}']; 

    echo "<tr> 
       <td>${title.$x}</td> 
      </tr> 
      <tr> 
       <td>${brief.$x}</td> 
      </tr> 
     "; 
} 

的$行數組來自mysql查詢。

+1

嚴重的是,它的每一行包含10個冠軍,10個簡報和10個費用字段? – jeroen

+0

引用你的'$ row' - '$ row [$ {'title'。$ x}];' –

+1

你需要看看你的數據庫設計。爲什麼'title1'' title2' ...不是單獨的行? – bcoughlan

回答

1
for($x=1; $x<11; $x++) 
{ 
    ${'title'.$x} = $row['title'.$x]; // will be like: $title1 = $row['title1']; (if you mean that) 
    ${'brief'.$x} = $row['brief'.$x]; 
    ${'cost'.$x} = $row['cost'.$x]; 

    echo "<tr> 
       <td>${'title'.$x}</td> 
      </tr> 
      <tr> 
       <td>${'brief'.$x}</td> 
      </tr> 
     "; 
} 

如果你的變量名是相同的,在該$row鍵名,你可以使用extract($row)得到你想要的所有變量。

但在你的情況,我認爲直接使用$row陣列不是壞主意。

+0

該代碼自身說明,但它想要陪伴它的一些智慧的話 – Kristian

+3

是的,像'不要使用它' – Musa

+1

@Kristian添加評論,這很容易理解。 – xdazz

0

只要你確定與$row一個變量轉換的一切,最簡單的方法是使用PHP的extract()(轉換一個數組變量),僅通過寫extract($row);