2011-05-03 5 views
1

현재 데이터베이스에서 대량의 데이터를 가져 와서 4+ 차원 배열로 반환하여 반환하는보고 클래스가 있습니다. 이것은 잘 작동하지만 그것이 최선의 방법이 아닌가 걱정됩니다. JSON, XML, 인터페이스 등을 사용해야합니까?PHP 다차원 연관 배열 대체

기본적으로이 데이터를 반환하는 가장 좋은 방법은 무엇입니까?

Array 
(
[17520] => Array 
    (
     [01356] => Array 
      (
       ["Math"] => Array 
        (
          [0130] => 75.2 
          [0215] => 76.8 
        ) 
       ["Science"] => Array 
        (
          [0130] => 85.2 
          [0215] => 72.2 
          [0308] => 96.3 
          [0320] => 68.4 
        ) 
      ) 
     [01468] => Array 
      (
       ["Math"] => Array 
        (
          [0130] => 23.2 
          [0215] => 54.8 
        ) 
       ["Science"] => Array 
        (
          [0130] => 72.6 
          [0215] => 79.1 
          [0308] => 68.7 
          [0320] => 72.2 
        ) 
      ) 
    ) 

[17522] => Array 
    (
     ect... 

답변

0

그것은 아마도 간단 할 것이다 :

$results[$teacherID][$studentID][$subject][$testID] 

및 구조의 샘플보기 : 여기

내가 데이터를 반환하는 다차원 연관 배열을 사용하고 방법의 예입니다 필요에 따라 필요한 데이터로 데이터베이스를 쿼리 할 수 ​​있습니다. 데이터를 루핑하는 것과 같은 일을하는 경우 데이터베이스에서 정보에 정보를 가져 오는 것이 완벽하게 유효한 솔루션 인 것 같습니다.

0

정말 6 분의 1, 6 분의 1입니다. 묻고 싶은 큰 질문은 반드시 데이터를 이동하는 방법이 아니라 원하는 결과가 무엇인가하는 것입니다.

나는 사용자에게 다시 돌아 오는 많은 양의 데이터를 처리 할 때 거의 언제나 jQuery's Datatables에 도달하여 정렬, 페이지, 필터 등을 할 수있는 것보다 훨씬 즐겁습니다. 합리적인 시간에 내 데이터는 아약스 호출을 통해 JSON으로 전달되므로 한 번에 한 그룹 씩 데이터를 가져올 수는 있지만 파이프 라인 데이터를 사용하면 결과를 앞뒤로로드하여 데이터베이스 히트를 줄일 수 있습니다.

그러나 그리드가 최종 솔루션이 아닌 경우가 있습니다. 아마도이를 사용자 정의 된 레이아웃으로 표시하려고하거나 단순히 페이지의 다른 요소에서 사용할 데이터를 수집하려고합니다. 이것은 확실히 배열이나 XML에 대한 유효한 사용이 될 것입니다. 그리고 나는 더 익숙해 져서 단순히 배열을하는 것에 끌리는 것 같아요. 개인 솔루션입니다.

때로는 좀 더 구체적인 질문을 만드는 것이 답입니다. 그러나 이는 심각한 성능 영향을 미칠 수 있습니다. 다시 한번 말하지만, 우리는 세부 사항을 알지 못하기 때문에 한번에 모든 것을 잡는 것의 이점과 여러 개의 작은 거래를하는 "비용"을 결정하는 것은 당신에게 달려 있습니다.

0

JSON 파일은 다소 짧을 것이고 PHP 이외의 언어로 쉽게 파싱 될 수 있다는 장점이 있습니다. XML은 좀 더 부피가 크다. (다운로드 시간이 걱정되면 인트라넷을 넘지 않아서 처리 오버 헤드가 커지지 만 PHP 이외의 다른 언어로 쉽게 파싱 될 수있다. 둘 이상의 프로그래밍 언어에서 이해할 수있는 형식으로 데이터 파일을 제공하는 것은 항상 좋은 생각입니다. 왜냐하면 현재 형식이 가장 작은 구문 분석 패널티 (parsing penalty)로 PHP에서 매우 쉽게 파싱되지만 PHP는이를 이해할 수있는 유일한 언어이기 때문입니다. JSON 또는 XML과 같은 이식 가능한 형식으로 제공하면 동일한 데이터로 작동하지만 다른 언어로 구현되는 다른 시스템이 향후 어느 정도 시간이 필요할 때마다 향후 교정 일정을 제공합니다.