php - (PHP) 获取数组(对象)不同结构的通用代码

标签 php arrays

我返回了 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 .= "<tr>";

        foreach ($list as $memberarray)
            {
                foreach ($memberarray as $member)
                    {
                        $out .= "<td>" . $member . "</td>";
                    }
            }

        $out .= "</tr>";
    }

但当只返回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 .= "<tr>";

    foreach ($list as $memberarray)
        {
            foreach ($memberarray as $member)
                {
                    $out .= "<td>" . $member . "</td>";
                }
        }

    $out .= "</tr>";
}

关于php - (PHP) 获取数组(对象)不同结构的通用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338106/

相关文章:

javascript - php 函数不将结果返回给 ajax 调用

javascript - 将数组数据添加到 Sendgrid 模板

php - 如何将json数据存储到mysql

php - 使用 Doctrine DQL 和 Symfony2 检查日期是否在 -45 分钟 +45 分钟范围内

PHP Post from Mysql html 选择下拉框

php - MySQL MAX 子查询

java - Pascal Triangle Java 练习,递归返回数组中 (1+x)^n 的系数

python - 当嵌套列表具有不同长度或缺少元素时,如何对 python 中的嵌套列表进行排序?

php 数组只有一种类型

javascript - 通过循环读取和插入数据到数组