2012-07-13 8 views
0

제가 인쇄 할 때 Array을 가지고 있는데, 다음과 같은 결과가 나옵니다.배열의 값을 얻으십시오

Array[{"city":"London","school":"st patrick"}] 

지금 내가 변수 city에 저장된 항목을 읽고 확인하고 싶은 경우는 아래의 IF 상태 London;

if ($cityArray['city'] == 'London') { 

    echo 'City present'; 
} 

위 조건이 맞지 않으면 예상되는 결과가 표시되지 않습니다. 나는 city 항목에 액세스하는 방식이 올바르지 않다고 생각합니다.

+0

이 경우 오류가 발생합니다. – PeeHaa

+0

올바른 구문을 사용합니까, 아니면 문제입니까? '$ cityArray'에'$'가 없습니다. – Dan

+0

그건 오류예요, 제가 바로 잡을 겁니다 – Illep

답변

0

부부. 배열은 JSON 형식으로 보입니다. 당신은 (배열의 형식을 수정 후) json_decode를 사용하여 디코딩 할 수 있습니다 :

$jsonArray = Array('{"city":"London","school":"st patrick"}'); // User the correct PHP array format: Array() while the inside elements should be quoted if they're strings. 
$cityArray = json_decode($jsonArray[0]); 

사용하여 올바른 변수 참조 형식 :

if ($cityArray->city == 'London') { // $cityArray is an object, so you'll need to use the -> operator to get its "city" property. 
    echo 'City present'; 
} 

당신의 값에 액세스하려는 방법 (값을 반환하는 이름을 입력하여) 연관 배열은 정확하지만 몇 가지 서식 문제를 해결해야합니다.

편집 : JSON을 얻기 위해 배열의 색인 번호가 추가되었습니다.

+0

json_decode()는 매개 변수 1이 문자열이고, 배열은 – Illep

+0

에 주어진다 고 말합니다. @Illep 죄송합니다, 실수. JSON 배열에 인덱스 번호 0을 추가하여 JSON 문자열을 얻습니다. (PHP 5.4가 새로운 배열 형식을 지원하지만 아직 익숙하지 않습니다.) – Stegrex

0

이것은 JSON 문자열입니다, 당신은 먼저 디코딩해야합니다

$data = json_decode($json); 

는 그런 다음과 같이 요소에 액세스 할 수 있습니다 사물의

for ($i = 0; $i < count($data); $i++) { 
    $element = $data[$i]; 
    echo $element->city; 
}