【问题标题】:PHP multidimensional associative array alternativePHP多维关联数组替代
【发布时间】:2011-08-17 10:45:02
【问题描述】:

我目前有一个报告类,它从我的数据库中提取大量数据并将其格式化为要返回的 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...

【问题讨论】:

    标签: php multidimensional-array associative-array


    【解决方案1】:

    JSON 文件会更短一些,而且它还有一个额外的优势,那就是它可以很容易地用 PHP 以外的语言进行解析。 XML 会更庞大(如果下载时间是一个问题,它可能不会通过 Intranet)并且具有更大的处理开销,但它可以很容易地被 PHP 以外的语言解析。以一种以上的编程语言可以理解的格式提供数据文件总是一个好主意,因为虽然 PHP 很容易以最小的解析代价解析您当前的格式,但 PHP 是唯一可以理解它的语言。如果将来某个时间需要另一个处理相同数据但以不同语言实现的系统,则将其采用 JSON 或 XML 等可移植格式提供了一定程度的未来证明。

    【讨论】:

      【解决方案2】:

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

      当我处理返回给用户的大量数据时,我几乎总是使用jQuery's Datatables,它允许我以一种比我更愉快的方式进行排序、分页、过滤等在合理的时间内做。我的数据通过 ajax 调用通过 JSON 传输,这使我不仅可以一次获取一组数据,还可以“管道”数据,以便我可以在结果前后加载数据以减少数据库命中。

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

      有时让您的查询更具体是答案。但是,这也会对性能产生严重影响。同样,由于我们不知道具体细节,因此您可以确定一次获取所有交易的好处与进行多个较小交易的“成本”。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-31
          • 2014-08-12
          相关资源
          最近更新 更多