1

I can't seem to get specific data from an array inside an object.

$this->fields->adres gets the address correctly, but i can't get a level deeper.

I've tried:

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

And: (edit)

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

But it does not return anything while it should return "Flevoland".

First part of the object print_r($this, TRUE) below:

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
1
  • be consistent in language. Use 'city' and 'address' ;) Commented Oct 28, 2011 at 18:06

5 Answers 5

6

You can also use type casting.

$fields = (array) $this->data->fields;
echo $fields['province'][0];
Sign up to request clarification or add additional context in comments.

1 Comment

Was going to mention this :-)
4

As you can see by your output, object members are likely to be private (if you follow conventions, anyway you must prepend an underscore while calling them), so you're calling them the wrong way; This code works:

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

You can see it in action here; I created a similar object, and using

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

outputs "Flevoland" as expected.

1 Comment

You were almost there, @Antoon :). Please consider marking this answer as "accepted" (the tick mark under the vote count) for future references; glad to have helped :)
0

As fields is already an array, try this:

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

This assuming the [_data] object is $this.

Comments

0

Fields and province are both arrays, you should be trying $this->fields["province"][0]

2 Comments

Thanks for your quick response guys, unfortunately, none of them gave back any result.. any other suggestions?
That really should have done it. Can you do a print_r on $this directly before running this line of code, then run it after? I'm suspecting there may be a different problem.
0
$this->_data->fields['province'][0]

3 Comments

unfortunately not. Fields is an array
fixed it sec before comment -_-
Thanks for your quick response guys, unfortunately, none of them gave back any result.. any other suggestions?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.