채택완료

json 에서 첫번째 것 고르기

2017-09-17 (일) 02:47:59 2,625

$json = '

{

  "messages" : {

    "-KVq_v373CXe7laxLWlG" : {

      "date" : 1478384658515,

      "text" : "밸리시마미용실 네일  661-294-9264 is deleted."

    },

    "-KVqa06DagtWdTGpP2Fs" : {

      "date" : 1478384683289,

      "k" : "밸리시마미용실 네일 ",

      "text" : "밸리시마미용실 네일  has been inserted."

    },

    "-KVqt7Sx3Tms64JM5tz5" : {

      "date" : 1478389694183,

      "text" : "리딩에지    5 0 508-836-4800 is deleted."

    }

}

}

';

$yummy = json_decode($json, true);

echo $yummy['messages']['-KVq_v373CXe7laxLWlG']['date']; //Maple

위와 같이 하면 되긴 되는데 [1] 첫번째를 고르면 안되고

['-KVq_v373CXe7laxLWlG'] 처럼 해야 선택이 되는데 

이게 무슨 암호 같아서 예측할수 없는 문자열이라서

숫자로 [1], [2] 이런식으로 호출 할려고 하는데

어떻게 해야 하나요?

|

답변 2개

채택된 답변
+20 포인트

만들면 가능이야 하겠지만

인덱스 재연산이 필요한 부분이므로 다른 방법으로도 해결이 가능하다면

인덱스기반 배열을 고수할 필요는 없다고 생각합니다. 

Copy
// $yummy['messages']['-KVq_v373CXe7laxLWlG']['date']// 의 또다른 표현은 current($yummy['messages'])['date'] // 1. 개별확인echo current($yummy['messages'])['date'] . PHP_EOL; next($yummy['messages']);echo current($yummy['messages'])['date'] . PHP_EOL; next($yummy['messages']);echo current($yummy['messages'])['date'] . PHP_EOL; next($yummy['messages']);// 2. 루프확인foreach ($yummy['messages'] as $v) {    echo $v['date'] . PHP_EOL;}

이렇게 해보세요

$cc = array_shift($yummy['messages']);
echo $cc[date];

답변을 작성하려면 로그인이 필요합니다.