在PHP中不能从关联数组中打印HTML表


Not able to print a HTML Table from an Associative Array in PHP

我有一个这种格式的关联数组:输出var_export($result)

Harvest_Result::__set_state(array(
    '_code' => 200, 
    '_data' => Harvest_Project::__set_state(array( 
        '_root' => 'project', 
        '_tasks' => array ( ), 
        '_convert' => true, 
        '_values' => array ( 
            'id' => '10287545', 
            'client-id' => '4861417', 
            'name' => 'ABC', 
            'code' => '', 
            'active' => 'true', 
            'billable' => 'true', 
            'bill-by' => 'Project', 
            'hourly-rate' => '145.0', 
            'budget' => '70.0', 
            'budget-by' => 'project', 
            'notify-when-over-budget' => 'true', 
            'over-budget-notification-percentage' => '80.0', 
            'over-budget-notified-at' => '2016-09-24', 
            'show-budget-to-all' => 'false', 
            'created-at' => '2016-03-15T21:38:40Z', 
            'updated-at' => '2016-05-31T23:19:58Z', 
            'starts-on' => '', 
            'ends-on' => '', 
            'estimate' => '70.0', 
            'estimate-by' => 'project', 
            'hint-earliest-record-at' => '2016-03-16', 
            'hint-latest-record-at' => '2016-08-11', 
            'notes' => '', 
            'cost-budget' => '', 
            'cost-budget-include-expenses' => 'false', 
        ), 
    )
)

,我不能以表的形式打印。

I tried doing this

<?php $project_id=10287545;
$result=$api->getProject($project_id);
$data = $result->get( "data" );
echo "<table border='1'>
    <tr><td>Project Name</td>
    <td>Hourly Rate</td>
    <td>Budget</td>
    <td>Currency</td>
    </tr>"; 
        foreach($data as $key=>$fruit) {
                        ?>
                     <tr><td><?php echo $fruit->name;?></td>
                     <td><?php echo $fruit->{'hourly-rate'};?></td>
                     <td><?php echo $fruit->{'budget'};?></td>
                     <td><?php echo $fruit->{'budget-by' };?></td></tr>
        <?php }
    echo "</table>";
?>

但是结果是一个空表,没有任何内容。请告知我哪里做错了。

我没有使用任何PHP框架。这段代码用于使用Harvest API查询Harvest。这里有一个PHP中Harvest API Wrapper库的链接。[http://mdbitz.com/docs/harvest-api/]。它列出了相关类和方法。

var_export($data)输出

<?php
Harvest_Project::__set_state(array(
    '_root' => 'project',
    '_tasks' => array() ,
    '_convert' => true,
    '_values' => array(
        'id' => '10287545',
        'client-id' => '4861417',
        'name' => 'ABC',
        'code' => '',
        'active' => 'true',
        'billable' => 'true',
        'bill-by' => 'Project',
        'hourly-rate' => '145.0',
        'budget' => '70.0',
        'budget-by' => 'project',
        'notify-when-over-budget' => 'true',
        'over-budget-notification-percentage' => '80.0',
        'over-budget-notified-at' => '2016-09-24',
        'show-budget-to-all' => 'false',
        'created-at' => '2016-03-15T21:38:40Z',
        'updated-at' => '2016-05-31T23:19:58Z',
        'starts-on' => '',
        'ends-on' => '',
        'estimate' => '70.0',
        'estimate-by' => 'project',
        'hint-earliest-record-at' => '2016-03-16',
        'hint-latest-record-at' => '2016-08-11',
        'notes' => '',
        'cost-budget' => '',
        'cost-budget-include-expenses' => 'false',
    ) ,
))

这是另一个函数的一些代码,我能够生成一个表!

<?php
$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>";
?>

我仍然不确定为什么我不能为初始代码创建一个表。

如果数据的结构不合适,就没有什么可循环的了。所以你可能会寻找更像这样的:

<?php 
$project_id = 10287545;
$result = $api->getProject($project_id);
$data = $result->get( "data" );
?>
<table border='1'>
    <tr>
        <td>Project Name</td>
        <td>Hourly Rate</td>
        <td>Budget</td>
        <td>Currency</td>
    </tr>

    <tr>
        <td><?php echo $data->_values['name']; ?></td>
        <td><?php echo $data->_values['hourly-rate']; ?></td>
        <td><?php echo $data->_values['budget']; ?></td>
        <td><?php echo $data->_values['budget-by']; ?></td>
    </tr>
</table>