-1

我对物体很陌生,但我仍在努力解决它。

这是我的情况:

我有来自一个 API 的信息,该 API 被格式化为一个带有一堆变量的对象,如下所示:

public 'id' => int 64
public 'taskId' => int 6
public 'projectId' => int 2
public 'type' => string 'progress' (length=8)
public 'text' => string 'bug5279 main branch fix confirmed beta still an issue with bounties' (length=111)
public 'ownerId' => int 3
public 'progress' => int 0
public 'hoursDone' => float 0.25
public 'createdAt' => string '2012-08-28T09:33:51' (length=19)
public 'notifyProjectTeam' => boolean false
public 'notifyTaskTeam' => boolean false
public 'notifyClient' => boolean false
public 'date' => string '2012-08-28T09:33:51' (length=19)

这是我用来生成上述代码的代码,它返回一堆对象活动列表

$activityList = $activityClient->getList( $filter, $offset, $count );

这是用户列表

$usersList = $usersClient->getAll();

现在我想做的只是在用户 hoursDone 值 >0 时显示用户名

我用谷歌搜索,我可以找到如何遍历一个对象,但似乎找不到正确的关键字来显示条件,因为我对对象很陌生,所以我有点迷失了。这是我的简单循环代码

// get the usernames 
foreach($usersList->items as $user_details) {
$users[$user_details->id]=$user_details->firstName.' '.$user_details->lastName;
}

// get projects
foreach($tasksList->items  as $task_details) 
{
$tasks[$task_details->id]=$task_details->name;
}

这就是我循环活动的方式

foreach($activityList->items as $workdetails) 
    {
echo "<br><h2>$username</h2><br>";
}
foreach($tasks as $taskid=>$taskname)
    {
    if($userid==$workdetails->ownerId && $taskid==$workdetails->taskId)
        {
         echo "<br>$workdetails->hoursDone<br>";
         echo "<br>$workdetails->text<br>";
        }
    }

现在的问题是我最终得到了这样的结果:

John 1 处理电子邮件

詹姆士

杰瑞

Harry 2.50 处理电子邮件

玛丽

莎拉

但我不希望人们出现,除非他们有 > 0 小时完成。

这是我真正失去的一点,我不知道从哪里开始说实话。任何指向答案或示例的链接都会很棒。这是继承代码和我自己的代码的混合体。

4

1 回答 1

0

你快到了,做吧

   foreach($tasks as $taskid=>$taskname){
       if($userid==$workdetails->ownerId && $taskid==$workdetails->taskId && $workdetails->hoursDone > 0){
           echo "<br>$workdetails->hoursDone<br>";
           echo "<br>$workdetails->text<br>";
       }
   }

我添加了一个检查以查看 hoursDone 值是否 > 0

于 2012-08-31T15:35:21.610 回答