Як отримати дані з масиву в об'єкті

Здається, я не можу отримати конкретні дані з масиву всередині об'єкта.

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

Я спробував:

$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 ($ this, 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
1
бути послідовним на мові. Використовуйте "місто" та "адресу";)
додано Автор Rene Pot, джерело

5 Відповіді

Як ви бачите у своєму виводі, учасники об'єкта, ймовірно, будуть приватними (якщо ви дотримуєтеся умов, то ви повинні вказувати підкреслення під час виклику), тому ви називаєте їх неправильним способом; Цей код працює:

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

Ви можете побачити його в дії тут ; Я створив подібний об'єкт і використовую

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

виходи "Флеволанд", як очікувалося.

4
додано
Ви були майже там, @ Antoon :). Будь ласка, подумайте про те, щоб позначити цю відповідь "прийнятою" (позначка галочки під підрахунком голосів) для подальших посилань; радий допомогти :)
додано Автор Damien Pirsy, джерело
Чудово, що працює! Дуже дякую!
додано Автор Antoon Cusell, джерело

Ви також можете використовувати тип лиття.

$fields = (array) $this->data->fields;
echo $fields['province'][0];
4
додано

Оскільки поля вже є масивом, спробуйте це:

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

Це припускає, що об'єкт [_data] є $ this .

0
додано
$this->_data->fields['province'][0]
0
додано
на жаль ні. Поля є масивом
додано Автор Rene Pot, джерело
фіксується сек перед коментарем -_-
додано Автор r15habh, джерело
Спасибі за вашу швидку відповідь хлопцям, на жаль, ніхто з них не віддав жодного результату .. будь-які інші пропозиції?
додано Автор Antoon Cusell, джерело

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

0
додано
Це дійсно повинно було зробити це. Чи можете ви зробити print_r на $ this безпосередньо перед тим, як запустити цю лінію коду, а потім запустити її після? Я підозрюю, що може бути інша проблема.
додано Автор Whetstone, джерело
Спасибі за вашу швидку відповідь хлопцям, на жаль, ніхто з них не віддав жодного результату .. будь-які інші пропозиції?
додано Автор Antoon Cusell, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php