2016-10-03 2 views
0

Я пытаюсь перебрать ассоциативный массив, который имеет следующую структуруPHP для каждого цикла-не генерирует записей

Выход из var_export ($ данных)

 <?php 
Harvest_Project::__set_state(array(
    '_root' => 'project', 
    '_tasks' => array() , 
    '_convert' => true, 
    '_values' => array(
     'id' => '10122036', 
     '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 
$project_id=10122036; 
$result=$api->getProject($project_id); 
$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>"; 
?> 

Этот код создает только столбцы и по какой-то причине не генерирует записи для каждой строки в таблице. Следовательно, результирующая таблица является пустой таблицей. Просьба указать, где я ошибаюсь.

Update

Этот код для запроса Harvest с помощью API урожая. Это библиотека Wrapper PHP http://mdbitz.com/docs/harvest-api/, которая содержит соответствующие классы и методы. getProject ($ project id) - это метод получения сведений о проекте на основе идентификатора проекта.

+0

дамп $ result is useles. вам нужно показать, что находится в '$ data', так как это то, что вы зацикливаете. мы понятия не имеем, что делают 'getProjects()' и 'get()' do. –

+0

Я обновил свой вопрос. – user3402248

+0

Попробуйте открыть новый тег tr внутри foreach и поместите это эхо в теги td. :) – mihutz

ответ

1

Добавлен код таблицы html.

$project_id='10122036'; 
$result=$api->getProject($project_id); 
echo "<table border='1'> 
    <tr><th>Project Name</th> 
    <th>Hourly Rate</th></tr>"; 

if($result->isSuccess()) { 
    $project = $result->data;?> 

<tr><td><?php echo $project->get("name");?></td> 
        <td><?php echo $project->hourly-rate;?></td></tr> 

<?php }else{?> 
    <tr><td colspan="2">No data from API</td></tr> 
<?php } ?> 
</table> 
0

Так как вы пытаетесь получить один проект с использованием API, используйте код ниже

$project_id='10122036'; 
$result=$api->getProject($project_id); 
if($result->isSuccess()) { 
    $project = $result->data; 
    echo $project->get("name"); 
    echo $project->hourly-rate; 
}else{ 
    echo "No data from API"; 

}

Если вы видите свою команду не поставить «Нет данных из API», то есть не данные возвращается из API

+0

Он печатает ABC 145.0 – user3402248

+0

Thats данные, найденные в вашем массиве ... это не то, что вы хотели? – rubberchicken

+0

затем отобразите его в таблице. –

Смежные вопросы