2011-05-03 121 views
1

我目前有一个报告类,它从我的数据库中提取大量数据并将其格式化为要返回的4维数组。这工作正常,但我担心这不是最好的方式。我应该使用JSON,XML,接口等...PHP多维关联数组替代

基本上什么是最好的方式来返回这些数据?

下面是我如何使用多维关联数组返回数据为例:

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

和结构的样品图:

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

它可能会更简单在需要时用您需要的数据查询数据库。如果你正在做循环遍历数据这样的事情,那么从数据库中获取信息到数组中似乎是一个非常有效的解决方案。

0

真的是6个,另有6个。要问的大问题不一定是用哪种方法来移动数据,而是期望的结果是什么?

当我处理大量的数据时,我会返回给用户,我几乎总是达到jQuery's Datatables,它们允许我以比我更喜欢的方式进行排序,页面过滤等操作在合理的时间内。我的数据通过ajax调用通过JSON调用,这使得我不仅可以一次获取数据,还可以“管道”数据,这样我就可以在结果前后加载数据,以减少数据库访问次数。

但是,有时候网格不是最终的解决方案。也许你试图以更加自定义的布局来显示它,或者只是收集数据以供页面中的其他元素使用。这肯定会对数组或XML有用,而且我认为我只是因为更习惯于数组而习惯数组......这是个人的解决方案。

有时使您的查询更具体是答案。但是,这也会对性能产生严重影响。再一次,由于我们不知道具体情况,因此您需要确定一次抓取的好处与执行多个小型交易的“成本”。

0

JSON文件会稍微短一些,它还有一个额外的优点,即它可以用PHP以外的语言轻松解析。 XML会更庞大(如果下载时间是一个问题,它可能不会通过内部网),并且处理开销更大,但是它可以通过PHP以外的其他语言轻松解析。以多种编程语言理解的格式提供数据文件始终是一个好主意,因为虽然您的当前格式非常容易通过PHP进行解析并且分析处罚最小,但PHP是唯一能理解的语言。如果使用JSON或XML等便携式格式,那么未来可能需要一段时间才能使用另一个使用相同数据但以不同语言实现的系统。