Search code examples
phparraysvariable-variables

variable variables, the key to my array


I found an example here that shows an example like this:

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

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

Is it possible to modify it to work like this:

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

The $row array comes from a mysql query.


Solution

  • 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>
             ";
     }
    

    If your variable name is same with the key name in the $row, you could use extract($row) to get all variables you want.

    But in your case, I think using the $row array directly is not bad idea.