Как я могу получить доступ к массиву идентификаторов его значения

0

Я анализирую код другого пользователя, который обнаружил при отладке типа и значений переменной класса во время выполнения:

echo print_r($this->_out);

Array
(
    [id] => -1
    [fieldErrors] => Array
        (
        )

    [error] => 
    [data] => Array
        (
        )

    [row] => Array
        (
            [DT_RowId] => row_177
            [id] => 177
            [last_name] => sdfdsf
            [first_name] => dsf
            [homeaddr] => sdfdsfsdfdsfdsfdsfdsf
            [email] => [email protected]
            [officeaddr] => wwwwwwwwwwwwwwwwwwwwwwww
            [mobile] => 11111111
            [age] => 11
            [chargeamt] => 11
            [start_date] => 11/11/2011
        )

)
1{"row":{"DT_RowId":"row_177","id":"177","last_name":"sdfdsf","first_name":"dsf","homeaddr":"sdfdsfsdfdsfdsfdsfdsf","email":"[email protected]","officeaddr":"wwwwwwwwwwwwwwwwwwwwwwww","mobile":"11111111","age":"11","chargeamt":"11","start_date":"11\/11\/2011"}}

Я новичок в PHP и хотел бы знать, как я могу получить доступ к [id] => 177, то есть значение 177.

Я много раз пробовал

$this->_out['row']['id'][0]

Это дало мне результат ниже:

1{"row":{"DT_RowId":"row_177","id":"177","last_name":"sssss","first_name":"ss","homeaddr":"sssssssssssssssssssss","email":"[email protected]","officeaddr":"sssssssssssssssssssssssssssss","mobile":"11111111","age":"11","chargeamt":"11","start_date":"01\/01\/2001"}}

в то время как

Я много раз пробовал

$this->_out['row']['id']

Это дало мне результат ниже:

177{"row":{"DT_RowId":"row_177","id":"177","last_name":"sssss","first_name":"ss","homeaddr":"sssssssssssssssssssss","email":"[email protected]","officeaddr":"sssssssssssssssssssssssssssss","mobile":"11111111","age":"11","chargeamt":"11","start_date":"01\/01\/2001"}}

и другие, но это просто не дает мне ожидаемого.

Как я могу получить доступ к значению по желанию?

  • 2
    $this->_out['row']['id'] выглядит так, как будто он выводит правильное значение 177 - вы уверены, что не используете какой-то другой вывод непосредственно после его использования?
  • 1
    $this->_out['row']['id'] возвращает вам результат этого.
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

Вы делаете все правильно. $this->_out['row']['id'] вернет желаемый результат (проверьте, почему вы получаете также строку JSON, которая не является частью print_t($this->_out).

Это вернет результат 177:

$this->_out['row']['id'];

И поскольку в PHP вы можете получить доступ к строковым символам в виде массива, это вернет первый символ в строке (то есть 1):

$this->_out['row']['id'][0];

И это вызовет ошибку, поскольку такой индекс отсутствует (длина строки равна 3, поэтому последний индекс равен 2):

$this->_out['row']['id'][5];
0

Результат print_r представляет собой массив с большим количеством массивов. Поэтому, прежде всего, вы должны найти индекс основного массива, индекс которого представляет собой подматрицу со значением, которое вы ищете. И тогда вы должны использовать этот индекс для доступа к значениям вспомогательного массива.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню