2013-06-11 7 views
0

나는 많은 혼란스러운 데이터를 가지고있는 API를 사용하고 있습니다. 상당히 혼란 스러울 수 있습니다. 저는 API에 대해 비교적 새롭고 특히 문서가 없습니다.대괄호로 배열 혼동

내 코드는 전체 API를 당기는 recent_games() 함수를 가져 오는 중 foreach 루프를 사용하여 데이터를 가져옵니다. 내가 필요한 데이터를 얻기 위해 배열 ($의 game_date)의 중첩을 계속 할 수있는 방법이 있나요

$statistics[$data] = $data['statistics']; 

: 나는 불법 같은 오류를 얻고있다

$games = $player->recent_games(); 

foreach($games['gameStatistics']['array'] as $key => $gameStatistic) { 
    $game_date[strtotime($gameStatistic['createDate'])] = $gameStatistic; 
} 
// order data 
krsort($game_date); 

foreach ($game_date as $game => $data) { 
    $statistics[$data] = $data['statistics']; 
} 

는 오프셋?

자세한 정보가 필요하면 알려주세요.

감사

EDIT 대한 추가 정보 : 상단

첫 번째 foreach 루프는 게임 당 유닉스 타임 스탬프 키를 반복합니다. 다음과 같이 보입니다 :

[1370947566] => Array 
    (
     [skinName] => Skin_name 
     [ranked] => 1 
     [statistics] => Array 
      (
       [array] => Array 
        (
          [0] => Array 
           (
            [statType] => stat_data 
            [value] => 1234 
          ) 
          [1] => Array 
           (
            [statType] => stat_data 
            [value] => 1234 
          ) 

매우 중첩되어 있지만 개별 통계 배열을 찾으려고합니다. 그게 도움이 되었길 바래요?

+1

잘못된 오프셋이란 배열 키로 사용할 수없는 배열 키로 사용하고 있음을 의미합니다 (예 : '$ x = array(); 배열은 배열 키가 될 수 없기 때문에 echo $ foo [$ x]'는 유효하지 않습니다. –

답변

3
$statistics[$data] = $data['statistics']; 

이 행이 올바른지 여부는 절대적으로 아닙니다.

오른쪽은 $data을 색인 배열로 사용합니다. 왼편은 $data으로 배열로 사용합니다. 키의 유일한 유효한 유형은 문자열과 정수이므로 $data은 두 표현식의 요구 사항을 동시에 충족시킬 수 없으므로 배열 문자열 또는 정수가 될 수 없습니다.

$data은 실제로 배열이므로, $staticstics[$data]으로 사용하는 것은 잘못되었습니다. $statistics은 무엇을 원하니?

+0

아아, 너 이해해라. 두 번째 foreach 루프를 첫 번째 내부에서 사용하여 중첩 배열에 추가 할 때 모든 배열 키를 가져올 계획입니다. 그것이 의미가 있는지 확실하지 않은가요? – CarlTaylor1989

+0

@ CarlTaylor1989 : 그다지 ... 당신이 달성하고자하는 것을 보여주기 위해 작은 예제를 포함하고 싶을 수도 있습니다. – Jon

+0

Jon, 위의 세부 정보를 추가했습니다. – CarlTaylor1989