1

这很有趣,让我难过。我有一个名为 Workday 的“订单”对象数组,如果我 print_r 数组我得到以下内容;

Workday Object
(
    [workday] => Array
        (
            [0] => Order Object
                (
                    [id] => 3
                    [date] => 2013-08-02
                    [username] => userXYZ
                    [number] => 33333333 
                    [duration_start] => 20:51:00
                    [duration_end] => 21:51:00
                    [total] => $340.00
                )

            [1] => Order Object
                (
                    [id] => 3
                    [date] => 2013-08-03
                    [username] => userXXA
                    [number] => 87653212 
                    [duration_start] => 10:51:00
                    [duration_end] => 11:54:00
                    [total] => $20.00
                )

            [2] => Order Object
                (
                    [id] => 3
                    [date] => 2013-08-01
                    [username] => userXYD
                    [number] => 12345678 
                    [duration_start] => 08:37:00
                    [duration_end] => 10:01:00
                    [total] => $10.00
                )

        )

)

问题似乎是当我尝试迭代数组时它只输出第一个结果。我错过了什么?

$workday = new Workday();
$workday->Get($username, $duration_start, $duration_end);

$i = 0;
if($workday != null)
{
    foreach($workday as $orders)
    {
        echo "ID: " . $orders[$i]->number;
        $i++;
    }
}
4

3 回答 3

2

尝试这个

foreach($workday->workday as $orders)
    {
        echo "ID: " . $orders->number;
     }
于 2013-08-05T04:45:38.000 回答
0

你得到的错误是告诉你发生了什么:你试图将一个对象用作一个数组。而是迭代$workday->workday(这是对象内的数组)。

foreach ($workday->workday as $orders) { ... }
于 2013-08-05T04:46:52.980 回答
0

您需要遍历workday对象的成员变量

if($workday != null)
{
    foreach($workday['workday'] as $orders)
    {
        echo "ID: " . $orders->number;
    }
}
于 2013-08-05T04:44:32.387 回答