2011-10-28 72 views
1

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

$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] 

但它不会返回任何东西,同时它应该返回 “弗莱福兰”。

低于对象的print_r($此,TRUE)的第一部分:

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

    [_data] => stdClass Object 
     (
      [username] => testzz 
      [name] => testzz 
      [email] => [email protected] 
      [fields] => Array 
       (
        [province] => Array 
         (
          [0] => Flevoland 
         ) 

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

在语言上是一致的。使用“城市”和“地址”;) –

回答

4

你可以通过你的输出看,对象成员很可能是私有的(如果你遵循惯例,反正你必须同时呼吁它们前面加上一个下划线),所以你称他们是错误的方式; 此代码的工作:

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

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

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

输出作为预期“弗莱福兰”。

+0

真棒,有效!非常感谢! –

+1

你几乎在那里,@Antoon :)。请考虑将此答案标记为“已接受”(投票计数下的勾号)以备将来参考;很高兴有帮助:) –

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

不幸的不是。 Fields是一个数组 –

+0

在发表评论前修复了它-_- – r15habh

+0

感谢您的快速回复,不幸的是,他们都没有回复任何结果..其他建议? –

0

正如领域已经是一个阵列,尝试:

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

此假设[_data ]对象是$this

0

场和省内两个数组,你应该尝试$this->fields["province"][0]

+0

感谢您的快速反应球员,不幸的是,他们都没有回报任何结果..任何其他建议? –

+0

这真的应该做到了。你可以在运行这行代码之前直接在$ this上执行print_r,然后运行它?我怀疑可能有不同的问题。 – Whetstone

4

你也可以使用类型转换。

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