在stdClass对象上的Foreach循环

时间:2014-04-02 21:55:39

标签: php json wordpress api for-loop

我正在为使用dev.whenIwork.com的api的Wordpress设置一个计划插件。

我是PHP世界的新手,曾经是一个前端人物 - 虽然我的基础知识有所下降,但这部分似乎让我感到困惑。

<?php
$wiw = new Wheniwork($wiw_token);
$shift_result = $wiw->get("shifts", array(
                                "location_id" => "106857", 
                                "start_time"  => "2014-03-05",
                                "user_id"     => "702524"
                              ));

print_r($shift_result);

打印出来

stdClass Object
(
    [start] => Wed, 02 Apr 2014 15:03:05 -0400
    [end] => Sat, 05 Apr 2014 15:03:05 -0400
    [shifts] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 31577385
                    [account_id] => 66357
                    [user_id] => 702524
                    [location_id] => 106857
                    [position_id] => 160296
                    [site_id] => 65765
                    [start_time] => Wed, 02 Apr 2014 09:00:00 -0400
                    [end_time] => Wed, 02 Apr 2014 19:00:00 -0400
                    [break_time] => 1
                    [color] => 999999
                    [notes] => Website 9-12
Game 12-1
Break 1 - 1:30
Web Site 1:30 - 3:00
Game 3:00-4:00
Break 4-4:30
Website 4:30 - 5:30
Game 5:30 - 6:30
Answer emails, plan what to tackle on website next for last 30 min

                    [alerted] => 1
                    [linked_users] => 
                    [shiftchain_key] => 
                    [published] => 1
                    [published_date] => Fri, 28 Mar 2014 10:16:34 -0400
                    [notified_at] => Fri, 28 Mar 2014 10:16:35 -0400
                    [created_at] => Fri, 28 Mar 2014 09:56:36 -0400
                    [updated_at] => Wed, 02 Apr 2014 07:01:26 -0400
                    [acknowledged] => 0
                    [is_open] => 
                    [actionable] => 
                    [block_id] => 0
                )


        )

    [users] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 702524
                    [account_id] => 66357
                    [role] => 3
                    [first_name] => First
                    [last_name] => Name
                    [avatar] => stdClass Object
                        (
                            [url] => avatarurl
                            [size] => %s
                        )

                    [is_hidden] => 
                    [is_private] => 1
                    [is_deleted] => 
                    [has_email] => 1
                    [positions] => Array
                        (
                            [0] => 160296
                        )

                    [locations] => Array
                        (
                            [0] => 106857
                        )

                    [position_rates] => Array
                        (
                        )

                    [position_quality] => stdClass Object
                        (
                            [160296] => 3
                        )

                    [sort] => stdClass Object
                        (
                            [106857] => 0
                        )

                )

        )

    [locations] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 106857
                    [account_id] => 66357
                    [is_default] => 0
                    [name] => Place of Employment
                    [sort] => 0
                    [max_hours] => 0
                    [address] =>    Address of Employment
                    [coordinates] => Array
                        (
                        )

                    [latitude] => 0
                    [longitude] => 0
                    [ip_address] => 
                    [created_at] => Thu, 13 Mar 2014 07:22:28 -0400
                    [updated_at] => Thu, 13 Mar 2014 12:22:28 -0400
                    [is_deleted] => 
                )

        )

    [positions] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 160296
                    [account_id] => 66357
                    [name] => Team Member
                    [color] => 
                    [sort] => 0
                    [created_at] => Fri, 28 Feb 2014 14:52:58 -0500
                    [updated_at] => Fri, 28 Feb 2014 14:52:58 -0500
                    [is_deleted] => 
                )

        )

    [sites] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 65765
                    [account_id] => 66357
                    [location_id] => 0
                    [name] => Place of Employment
                    [color] => 
                    [description] => 
                    [address] => 
                    [coordinates] => Array
                        (
                        )

                    [latitude] => 0
                    [longitude] => 0
                    [created_at] => Fri, 28 Feb 2014 14:59:34 -0500
                    [updated_at] => Fri, 28 Feb 2014 14:59:45 -0500
                    [is_deleted] => 
                )

        )

)

我可以通过执行类似

之类的操作来单独查看位置,开始时间等
$location = $shift_result->shifts[0]->location_id;

但我没有足够的知识让它自动化。&#34;

我最终希望它像

<div id="username">
username
</div>
<div id= "starttime">
start time
</div>

但这将适用于多名员工,多班次,多个日期等。 我有点过头了。

我当然要继续研究,如果我自己解决这个问题,我会让你们知道。

2 个答案:

答案 0 :(得分:1)

$shift_result->shifts是一个对象数组,因此您可以像这样迭代它:

foreach($shift_results->shifts as $shift){
    echo '<p>name: ' . $shift->first_name . '</p>';
}

答案 1 :(得分:1)

foreach($shift_result->shifts as $shifts){

    echo $shifts->first_name;  
         }
相关问题