2012-05-14 5 views
1

데이터베이스와 게시물의 일부 데이터를 클라이언트로 가져 오는 기능이 있습니다. 현재는 데이터를 일반 배열로 보냅니다 (출력은 MyArray (a, b, c, d ..)와 같음). 그러나 MyArray (a (b, c, d))가되고 싶습니다. Castegory (이름, ID, 주문 ..)는 .. 수있는 사람은 Help..Here 내가이 구문 분석시JSON을 사용하여 배열 배열을 보내는 방법

public function get_button_template() 
    { 
     $this->q = "SELECT * FROM button_template ORDER BY order_number ASC"; 
     $this->r = mysql_query($this->q); 
     if(mysql_num_rows($this->r) > 0) 
     {   
      while($this->f = mysql_fetch_assoc($this->r)) 
      { 
       $this->buttons[$this->i]["ID"] = $this->f["ID"];   
       $this->buttons[$this->i]["name"] = $this->f["button_name"];    
       $this->buttons[$this->i]["category"] = $this->f["button_category"]; 
       $this->buttons[$this->i]["order_number"] = $this->f["order_number"]; 
       $this->i++; 
      } 
     } 
     return $this->buttons; 
    } 

편집 약간 öore 세부 .. 내가 얻을하시기 바랍니다 이미 사용 버전에 대한 내 코드입니다하시기 바랍니다 이 같은 :

"Vaule"("Key1": "Value1" "Key2": "Value2" .

그러나

처럼 omething 내가 원하는 것은
`"Category0":("Key1": "Value1", "Key2": "Value2" .) 

"Category1":("Key1": "Value1", "Key2": "Value2" .)..` 

어떻게 키 - 값 쌍이있는 다차원 배열을 보낼 수 있습니까?

+2

내부에 그 버튼을 저장하는 이유는 단지로 json_encode하는 배열을 전달합니다. 배열을 얼마나 깊이 중첩 시킬지에 대한 실질적인 제한은 없습니다. –

+0

@MarcB 나는 그의 배열을 변형시키고 싶어한다고 생각한다. –

+0

고대의'mysql_ *'함수로 새로운 코드 작성을 중단하십시오. 더 이상 유지 관리되지 않으며 커뮤니티에서 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 결정할 수없는 경우 [이 기사] (http://goo.gl/3gqF9)를 선택하면 도움이됩니다. 당신이 배우고 싶다면 [여기 PDO 관련 튜토리얼] (http://goo.gl/vFWnC)을 참조하십시오. –

답변

3

배열을 작성하는 방법 만 변경하십시오. 당신이 범주별로 그룹화 할 경우

편집

코드 이름 => 키 맵을 사용하여 번호 범주를 만들 변경되었습니다.

<category 1>: [ 
    (CatName1, Id1, name1, ordernr1) 
    (CatName1, Id2, name2, ordernr2) 
], 
<category 2>: [ 
    (CatName2, Id3, name3, ordernr3) 
    (CatName2, Id4, name4, ordernr4) 
] 

이어서 최종 결과 json_encode을 사용

$category_map = array(); $cat_nr = 0; 
while ($this->f = mysql_fetch_assoc($this->r)) { 
    if (!isset($category_map[$this->f["button_category"]])) { 
     $category_key = "Category{$cat_nr}"; 
     $category_map[$this->f["button_category"]] = $category_key; 
     ++$cat_nr; 
    } else { 
     $category_key = $category_map[$this->f["button_category"]]; 
    } 
    $this->buttons[$category_key]][] = array(
     'category' => $this->f["button_category"], 
     "ID" => $this->f["ID"], 
     "name" => $this->f["button_name"], 
     "order_number" => $this->f["order_number"], 
    ); 
    $this->i++; 
} 

이 같은 배열을 생성한다.

는, BTW하지 당신이 개체 자체 ;-)

+0

iOS (ipad) 용 웹 서비스 응용 프로그램을 만들고 있는데, 서버에서 각 사용자의 단추를 보내면 클라이언트 측의 단추를 그룹화합니다 (ipad)를 카테고리로 사용합니다. 그리고 프로그래밍에 익숙하지 않아 객체 설계, 서버 및 폴링 데이터와의 통신에 문제가있을 수 있습니다. 답변을 주셔서 감사합니다. – ilhnctn

+0

이 대답은 제가 원했던 것입니다. 다시 한 번 감사드립니다 :) – ilhnctn

+0

나는 이런 식으로 뭔가를 얻을이 구문 분석시 : "Vaule"( "키 1": "값 1" "키 2". "값 2" 하지만 "Category0"와 같은 omething되어 원하는 :( "Key1": "Value1" "Key2": "Value2" . ) "카테고리 1":( "키 1": "값 1" "키 2": "값 2" ) .. I 키 - 값 쌍을 갖는 multidimentional 어레이를 전송할 수있는 방법.? – ilhnctn

관련 문제