2012-04-25 6 views
0

Я пытаюсь вывести значение значения электронной почты для массива, но у меня проблемы с этим. Массив основан на json_decode()Не удается получить значение из массива

Это ошибка я получаю

Fatal error: Cannot use object of type stdClass as array in /home/.... line 57 

JSON (стоимость: $ this-> bck_content)

{"email":"[email protected]","membership_id":"0","fname":"Kenneth","lname":"Poulsen","userlevel":"1","created":"2012-04-23 10:57:45","lastlogin":"2012-04-23 10:58:52","active":"y"} 

Мой код

# Display requested user details 
    $details_array = json_decode($this->bck_content); 

    $value = $details_array['email']; 
    print $value; 
+0

Этот код выполняется в классе? –

ответ

3

Вам необходимо использовать второй аргумент json_decode, чтобы принудительно создать массивные структуры на J S объектов.

json_decode($this->bck_content, true); 

Это убедиться, что все объекты JS в JSON декодируются как ассоциативные массивы вместо PHP StdObjects.

Конечно, предполагается, что вы хотите использовать нотацию массива для доступа к ним. Если вы хорошо с помощью объекта обозначений, то вы можете просто использовать:

$value = $details_array->email; 
+0

Большое спасибо, пытались найти эту ошибку как минимум на час (вероятно, ближе к 2): p –

1

попробовать это один

$value = $details_array->email; 

или

json_decode($json, true); 

или

$details_array = (array)json_decode($json); 

, что есть вы сделали неправильно, написано в описании ошибки