如何从对象中的数组中获取数据

时间:2011-10-28 17:59:01

标签: php arrays object

我似乎无法从对象内的数组中获取特定数据。

$this->fields->adres正确获取地址,但我无法深入了解。

我试过了:

$this->fields->province
$this->fields->province->0
$this->fields->province[0]

并且:(编辑)

$this->fields["province"][0]
$this->fields['province'][0]
$this->data->fields['province'][0]

但它应该返回“Flevoland”时不会返回任何内容。

下面的对象print_r($ this,TRUE)的第一部分:

RSMembershipModelSubscribe Object
(
    [_id] => 2
    [_extras] => Array
        (
        )

    [_data] => stdClass Object
        (
            [username] => testzz
            [name] => testzz
            [email] => xxxx@example.com
            [fields] => Array
                (
                    [province] => Array
                        (
                            [0] => Flevoland
                        )

                    [plaats] => tesdt
                    [adres] => test

5 个答案:

答案 0 :(得分:4)

正如您可以通过输出看到的,对象成员可能是私有的(如果您遵循约定,无论如何您必须在调用它们时添加下划线),因此您以错误的方式调用它们; 此代码有效:

$this->_data->fields['province'][0];

您可以在行动here中看到它; 我创建了一个类似的对象,并使用

$membership = new RSMembershipModelSubscribe();
echo $membership->_data->fields['province'][0];

按预期输出“Flevoland”。

答案 1 :(得分:4)

您也可以使用类型转换。

$fields = (array) $this->data->fields;
echo $fields['province'][0];

答案 2 :(得分:0)

$this->_data->fields['province'][0]

答案 3 :(得分:0)

由于字段已经是数组,请尝试以下方法:

$this->fields['province'][0]

这假设[_data]对象是$this

答案 4 :(得分:0)

字段和省都是数组,您应该尝试$this->fields["province"][0]