我有两个返回的数组(对象)结构:
1)如果只返回 1个数据:
stdClass Object
(
[result] => stdClass Object
(
[recordData] => stdClass Object
(
[fieldNames] => Array
(
[0] => CUSTOMER_ID_
[1] => EMAIL_ADDRESS_
[2] => FIRST_NAME
[3] => LAST_NAME
[4] => SEX
[5] => DATE_OF_BIRTH
)
**[records] => stdClass Object
(
[fieldValues] => Array
(
[0] => CUSTOMER_ID_001
[1] => email001@test.com
[2] => FIRST_NAME_001
[3] => LAST_NAME_001
[4] => M
[5] => 01/01/1991
)
)**
)
)
)
2)如果超过1个数据返回:
stdClass Object
(
[result] => stdClass Object
(
[recordData] => stdClass Object
(
[fieldNames] => Array
(
[0] => CUSTOMER_ID_
[1] => EMAIL_ADDRESS_
[2] => FIRST_NAME
[3] => LAST_NAME
[4] => SEX
[5] => DATE_OF_BIRTH
)
**[records] => Array
(
[0] => stdClass Object
(
[fieldValues] => Array
(
[0] => CUSTOMER_ID_001
[1] => email001@test.com
[2] => FIRST_NAME_001
[3] => LAST_NAME_001
[4] => M
[5] => 01/01/1991
)
)
[1] => stdClass Object
(
[fieldValues] => Array
(
[0] => CUSTOMER_ID_002
[1] => email002@test.com
[2] => FIRST_NAME_002
[3] => LAST_NAME_002
[4] => F
[5] => 02/02/1992
)
)
)**
)
)
)
目前我正在使用此代码:
foreach ($memberlist->result->recordData->records as $list)
{
$out .= "<tr>";
foreach ($list as $memberarray)
{
foreach ($memberarray as $member)
{
$out .= "<td>" . $member . "</td>";
}
}
$out .= "</tr>";
}
但只返回1个数据时它不起作用。
如何修改我的代码才能获得这两种结构?
谢谢。
答案 0 :(得分:3)
我相信这应该可以解决问题:
// If it is already an array, leave it as an array, if it's not, place it in an array
$member_records = ( is_array( $memberlist->result->recordData->records ) ? $memberlist->result->recordData->records : array( $memberlist->result->recordData->records ) );
foreach ($member_records as $list)
{
$out .= "<tr>";
foreach ($list as $memberarray)
{
foreach ($memberarray as $member)
{
$out .= "<td>" . $member . "</td>";
}
}
$out .= "</tr>";
}