2010-03-12 48 views
0

我努力做到以下几点:PHP语法混乱数据库访问结果

<?php foreach($sqlResult as $row): ?> 
    <tr> 
     <?php foreach($formdata['columns'] as $column): ?> 
      <td><?php echo $row->$column['name']; ?></td> 
     <?php endforeach; ?> 
    </tr> 
<?php endforeach; ?> 

这是行不通的。 $ row-> id,$ row-> author,$ row-> date,$ row-> title,这些工作正常,因为它们很好地响应。

$列如下排列:

'columns' => array 
(
    1 => array 
(
    'name' => 'id' 
), 
    2 => array 
(
    'name' => 'author' 
), 
    3 => array 
(
    'name' => 'date' 
), 
    4 => array 
(
    'name' => 'title' 
) 

它也可以罚款$列[“名”]相呼应ID,作者,日期,标题

我的问题是如何将它有可能对于我通过从数组中传入名称来访问$ row->方法(是一种方法吗?)?

回答

1

我不是100%肯定我明白你想要做什么,但我想你想要这样的:

<td><?php echo $row->{$column['name']}; ?></td> 

通知大括号。他们确保$column["name"]被完全解释为您想要访问的财产。现在,您正在访问名为$column的属性及其数组键name

1

尝试做:

$column_name = $column['name']; 
echo $row->$column_name; 

echo $row->{$column['name']} 

自己觉得更具可读性。