2012-04-25 6 views
0

배열의 전자 메일 값을 출력하려고하는데 문제가 있습니다. 배열이 json_decode()배열에서 값을 가져올 수 없습니다.

을 기반으로이 오류가 나는

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

JSON을받을 것입니다 (값 :> bck_content $ this-)를

{"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); 

이렇게하면 json의 모든 JS 객체가 PHP StdObjects 대신 연관 배열로 디코딩됩니다.

물론 배열 표기법을 사용하여 액세스하려고한다고 가정합니다. 당신이 객체 표기법을 사용하여 괜찮아요 경우, 당신은 사용할 수 있습니다

$value = $details_array->email; 
+0

감사합니다. 적어도 한 시간 이상 (아마도 2에 가깝습니다) 오류를 찾으려고했습니다. p –

1

은 무엇을이 하나

$value = $details_array->email; 

또는

json_decode($json, true); 

또는

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

시도 오류 설명에 잘못 쓰셨군요.

관련 문제