将关联数组转换为表格

3

我正在尝试将一个以HTML表格形式呈现的关联数组进行转换。这是该数组的样式:

Array ( [] => Harvest_Project Object ( 
               [_root:protected] => project 
               [_tasks:protected] => Array ( ) 
               [_convert:protected] => 1 
               [_values:protected] => Array ( 
                     [id] => \ 
                     [client-id] => - 
                     [name] => Internal 
                     [code] => 
                     [active] => false 
                     [billable] => true 
                     [bill-by] => none 
                     [hourly-rate]=>-

以下是我在PHP中编写的将数组转换为表格的代码:

<?php
require_once(dirname(__FILE__) . '/HarvestAPI.php');

/* Register Auto Loader */
spl_autoload_register(array('HarvestAPI', 'autoload'));

$api = new HarvestAPI();
$api->setUser( $user );
$api->setPassword( $password );
$api->setAccount( $account );

$api->setRetryMode( HarvestAPI::RETRY );
$api->setSSL(true);

$result = $api->getProjects();
$data = $result->get( "data" );
echo "<table border='1'>
    <tr><td>Project Name</td>
    <td>Hourly Rate</td>
    </tr>";
        foreach($data as $key=>$fruit) {
                        ?>
                     <tr><td><?php echo $fruit["Name"];?></td>
                     <td><?php echo $fruit["hourly-rate"];?></td></tr>
        <?php ;}
    echo "</table>";
?>

我想显示一个包含两列的表格 - 项目名称和每小时费率
但是一旦我执行代码,它会抛出一个错误“致命错误:无法在第24行使用Harvest_Project类型的对象作为数组。” 它是指这一行。
<tr><td><?php echo $fruit["Name"];?></td>

请建议如何处理这个问题。
2个回答

2
你不能以相同的方式访问对象和数组。请改用->运算符:
 <tr><td><?php echo $fruit->name;?></td>
 <td><?php echo $fruit->{'hourly-rate'};?></td></tr>

你需要在hourly-rate周围使用花括号,因为变量名称中不能有破折号。否则会被视为减法操作符。


0

$fruit 是一个包含许多键的对象。要在 foreach 循环中获取对象的 _values 键的 name 键,您可以像这样操作:

$values = $fruit-> _values
$values['name']; // retrieve the name "Internal"

我认为他无法访问像你提到的那样的对象..$fruit["name"] - pritesh
我完全错了,但我编辑了我的答案,我认为现在更正确了。 - Vincent G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接