变量变量,是我的数组的关键

时间:2012-05-23 02:10:05

标签: php arrays variable-variables

我找到了一个示例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>
         ";
 }

$ row数组来自mysql查询。

2 个答案:

答案 0 :(得分: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数组并不是一个坏主意。

答案 1 :(得分:0)

只要您可以将$row中的所有内容转换为变量,最简单的方法是使用PHP的extract()(将数组转换为变量),只需编写extract($row);即可