2014-03-30 2 views
2

registration_id 키가있는 results 배열의 모든 위치를 얻으려면 어떻게해야합니까?PHP는 json 배열 키 위치를 얻습니다

$json_raw = '{"multicast_id":6446899316497614986, 
        "success":5, 
        "failure":1, 
        "canonical_ids":3, 
        "results":[ 
          {"registration_id":"APA91bEgLFvrc0lnXqX3C1euQohdHrv_wbxtGP86ezRzGWEVMQPpJjw1GMhGzfkI8Q34TU1KRts2j_-7CyU4ce6MlX5DB3umpXDGl-Ebmg53b44UKga79ee9Sal6gT_9rP3KIz9pDEUk2JVJsQmxiWXWoIfrYEAmFg", 
           "message_id":"0:1396175384218906%50b5570df9fd7ecd" 
          }, 
          {"registration_id":"APA91bEgLFvrc0lnXqX3C1euQohdHrv_wbxtGP86ezRzGWEVMQPpJjw1GMhGzfkI8Q34TU1KRts2j_-7CyU4ce6MlX5DB3umpXDGl-Ebmg53b44UKga79ee9Sal6gT_9rP3KIz9pDEUk2JVJsQmxiWXWoIfrYEAmFg", 
           "message_id":"0:1396175384218155%50b5570df9fd7ecd" 
          }, 
          {"registration_id":"APA91bEgLFvrc0lnXqX3C1euQohdHrv_wbxtGP86ezRzGWEVMQPpJjw1GMhGzfkI8Q34TU1KRts2j_-7CyU4ce6MlX5DB3umpXDGl-Ebmg53b44UKga79ee9Sal6gT_9rP3KIz9pDEUk2JVJsQmxiWXWoIfrYEAmFg", 
           "message_id":"0:1396175384219100%50b5570df9fd7ecd" 
          }, 
          {"message_id":"0:1396175384218718%b91f4d1ff9fd7ecd" 
          }, 
          {"message_id":"0:1396175384219927%50b5570df9fd7ecd" 
          }, 
          {"error":"InvalidRegistration" 
          }] 
         }'; 

어떤 도움을 주셔서 감사합니다!

답변

1

json_decode()을 사용할 수 있습니다.

$data = json_decode($json_raw, TRUE); 
foreach ($data['results'] as $key=>$result) { 
    if (array_key_exists('registration_id', $result)) { 
     //use now via $data['results'][$key] or simply $result 
    } 
} 

또는 당신은 단지 registration_id이있는 사람을 유지하려는 경우, 사용 array_filter() :

내가 사용자 좋을 것
function registrationIdExists($result) { 
    return array_key_exists('registration_id', $result); 
} 

$data = json_decode($json_raw, TRUE); 
$data['results'] = array_filter($data['results'], "registrationIdExists"); 
+1

''FALSE '를 반환 후자로 isSet''대신 array_key_exists' 키가 있지만 그 값이 'null'인 경우 - http://it2.php.net/array_key_exists – Paolo

+0

이 멋진 답변을 주셔서 감사합니다.하지만이 결과가 아니라 registration_id의 전체 결과 배열에서 위치를 가져와야합니다. 키 –

관련 문제