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