2016-04-15 20 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]=>- 

のように見え、これは私が2 columns-でテーブルを表示したいと思い、私はテーブルに

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

を配列に変換するためのPHPで書かれているコードがどのようです プロジェクト名と時給

しかし、私はそれはエラー 致命的なエラーがスローコード実行後:行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

私は間違っていたが、私の答えを編集した、私はそれがより正しいと思う –