PHP数组未正确迭代,仅获取第一个结果

PHP数组未正确迭代,仅获取第一个结果,php,arrays,Php,Arrays,这仍然很有趣,让我感到困惑。我有一个名为Workday的“order”对象数组,如果我打印该数组,我会得到以下结果: Workday Object ( [workday] => Array ( [0] => Order Object ( [id] => 3 [date] => 2013-08-02

这仍然很有趣,让我感到困惑。我有一个名为Workday的“order”对象数组,如果我打印该数组,我会得到以下结果:

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++;
    }
}

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

if($workday != null)
{
    foreach($workday['workday'] as $orders)
    {
        echo "ID: " . $orders->number;
    }
}
试试这个

foreach($workday->workday as $orders)
    {
        echo "ID: " . $orders->number;
     }

您得到的错误告诉您发生了什么:您试图将对象用作数组。迭代
$workday->workday
(对象中的数组)


刚刚尝试,出现了致命错误:无法将Workday类型的对象用作数组是否确实不是只返回一个结果的
Get()
方法?您是否将
$username、$duration\u start、$duration\u end
作为搜索参数传递,因为这可能是您只收到一个结果的原因。@DaveChen您的答案是正确的,为什么要删除它?答对了!非常感谢。那么,我的阵列设计是否糟糕,或者只是n00b开发人员的疏忽:P
foreach ($workday->workday as $orders) { ... }