2013-05-31 3 views
0

안녕하세요 저는 주어진 SQL 쿼리의 결과를 JSON으로 출력하고 싶은 간단한 스크립트로 작업하고 있습니다.foreach를 사용하여 배열 요소 삽입하기

$player = $this->game->getPlayer(5); 
$leaderboard= $this->game->getLeaderboard(5); 

$data = array(
      'player' => array(
       $player[0]->member_userunique, // USERNAME 
       $player[0]->score, // HIGHSCORE 
       $player[0]->memberid 
      ), 
      'leaderboard' => array(
       'score #1', 
       'score #2', 
       'score #3', 
       'score #4', 
       'score #5' 
      ) 
     ); 
echo json_encode($data); 

getPlayer (x)는 플레이어에 대한 정보를 반환합니다

이 내가 지금까지있는 것입니다. getLeaderboard는 데이터베이스에서 상위 5 개의 레코드를 가져옵니다. 그러나, 나는 '리더 보드'배열로 반환 된 SQL 결과에서 각 행을 반복하고 싶습니다.

나는 $ leaderboard [0] -> ....을 타이핑하여 약간의 무차별 대항력을 사용할 수 있다고 생각한다.하지만 이렇게하는 것이 더 똑똑한 방법을 알고 싶다.

도움 주셔서 감사합니다.

+0

$ this-> game을 채우는 코드를 보여 주거나 거기에 얼마나 많은 리더 보드가 있는지 알 수있는 방법을 알려주십시오. . 또한'getLeaderboard (5)'에서 ** 5 **가 반환 할 항목의 수입니까, 아니면 플레이어의 식별자입니까? –

답변

2

아래 배열 구축하는 데 사용할 수있는 식으로 뭔가 : 당신의 $leaderboard 배열에

$leaderboardArray = array(); 
foreach($leaderboard as $num => $score){ 
    $leaderboardArray['score #'.$num] = $score; 
} 
$data['leaderboard'] = $leaderboardArray; 
+0

힌트를 thx, 나는 당신의 해결책을 가져다가 필요에 따라 조금 수정. – Jeremy

0

그냥 루프를 나중에

$player = $this->game->getPlayer(5); 
$leaderboard= $this->game->getLeaderboard(5); 

$leaderboard_array = array('leaderboard'=>array()); 
foreach($leaderboard as $val) 
{ 
    $leaderboard_array[] = 'score #' . $val; 
} 

$data = array(
     'player' => array(
      $player[0]->member_userunique, // USERNAME 
      $player[0]->score, // HIGHSCORE 
      $player[0]->memberid 
     ), 
     $leaderboard_array, 
    ); 
0

음을 포함하도록 배열을 구축, 당신은 그냥 할 수 당신이 그것을 원하는처럼 점수로 배열을 반환하고이

$data['leaderboard'] = $leaderboard; 
같은 $ 데이터에 삽입 getLeaderboard

두 번째 솔루션은 각 요소를 추가하는 리더 배열을 루핑

foreach($leaderboard as $entry) { 
    $data['leaderboard'][] = "Score #" . $entry; 
} 

이 리더를 가정 문자열이나 숫자와 그 $의 배열을 반환 (리더를 가정하는 것은 getLeaderboard에서 돌아 왔을 때 당신이 원하는 순서대로 정렬됩니다) data [ 'leaderboard']는 비었을 때 비어 있습니다. 비어 있지 않다면 업데이트하거나 업데이트 할 위치를 참조하기 위해 키를 사용하십시오

+0

근본적으로 그게 내가 필요한거야. Thx는 도움을 요청합니다. – Jeremy

관련 문제