我有2个返回的数组(对象)结构:
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 .= "
";foreach ($list as $memberarray)
{
foreach ($memberarray as $member)
{
$out .= "
" . $member . "";}
}
$out .= "
";}
但仅返回1个数据时不起作用.
如何修改代码以同时获得两种结构?
谢谢.
解决方法:
我相信这应该可以解决问题:
// 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 .= "
";foreach ($list as $memberarray)
{
foreach ($memberarray as $member)
{
$out .= "
" . $member . "";}
}
$out .= "
";}
标签:arrays,php
来源: https://codeday.me/bug/20191120/2040857.html