PHP多维关联数组替代方案

PHP多维关联数组替代方案,php,multidimensional-array,associative-array,Php,Multidimensional Array,Associative Array,我目前有一个reporting类,它从我的数据库中提取大量数据,并将其格式化为一个4维以上的数组以返回。这很好,但我担心这不是最好的方法。我应该使用JSON、XML、接口等吗 基本上,返回此数据的最佳方式是什么 下面是我如何使用多维关联数组返回数据的示例: $results[$teacherID][$studentID][$subject][$testID] 以及结构的示例视图: Array ( [17520] => Array ( [01356] => A

我目前有一个reporting类,它从我的数据库中提取大量数据,并将其格式化为一个4维以上的数组以返回。这很好,但我担心这不是最好的方法。我应该使用JSON、XML、接口等吗

基本上,返回此数据的最佳方式是什么

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

$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...

在需要时,使用所需数据查询数据库可能会更简单。如果你在做数据循环之类的事情,那么从数据库中将信息放入一个数组似乎是一个非常有效的解决方案。

这实际上是一个6/5/6的解决方案。要问的大问题不一定是用哪种方法移动数据,而是期望的结果是什么

当我处理返回给用户的大量数据时,我几乎总是能找到允许我以一种比我在合理时间内所能做的更令人愉快的方式进行排序、分页、筛选等的数据。我的数据通过一个ajax调用通过JSON传递,它不仅允许我一次从一个组中获取数据,还允许我“管道”数据,这样我就可以在结果之前和之后加载数据,以减少数据库命中率

然而,有时网格并不是最终解决方案。也许您正试图以更定制的布局显示此内容,或者只是收集数据以供页面中的其他元素使用。这当然是对数组或XML的有效使用,我想我会倾向于只使用数组,因为我更习惯于使用它……这是一个个人解决方案


有时候,让你的问题更具体就是答案。但是,这也会对性能产生严重影响。再说一次,由于我们不知道具体细节,您可以决定一次性抓取的好处与进行多个较小事务的“成本”相比。

JSON文件会稍微短一些,而且它还有一个额外的优势,即可以使用PHP以外的语言轻松解析。XML将更庞大(如果下载时间是一个问题,它可能不会在内部网上),并且有更大的处理开销,但是它可以很容易地被PHP以外的语言解析。以一种可被多种编程语言理解的格式提供数据文件始终是一个好主意,因为虽然PHP可以以最小的解析代价轻松解析当前格式,但PHP是唯一能够理解它的语言。如果将来需要另一个使用相同数据但使用不同语言实现的系统,则将其设置为可移植格式(如JSON或XML)可以提供一定程度的未来证明