2016-04-15 102 views
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>"; 
?> 

我想與2 columns-顯示一個表格的代碼 項目名稱和時薪

但是,一旦我執行它拋出一個錯誤 致命錯誤代碼:上線24無法使用類型Harvest_Project的對象數組。它指的是這條線

<tr><td><?php echo $fruit["Name"];?></td> 

請建議如何去做。

回答

2

不能以相同的方式訪問對象和數組。使用->操盤手:

<tr><td><?php echo $fruit->name;?></td> 
<td><?php echo $fruit->{'hourly-rate'};?></td></tr> 

您將需要使用大括號圍繞每小時率,因爲變量不能在名稱中破折號。他們被視爲減法操作符。

0

$fruit是包含許多鍵的對象。爲了獲取對象的_values關鍵的name鍵,你可以這樣做在你的foreach循環:

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

我不認爲像你所說,他可以訪問的對象.. $果[「名」 ] – pritesh

+0

我完全錯了,但我編輯了我的答案,我認爲它更正確 –