PHP多维数组与平面数组效率

时间:2014-02-03 21:24:24

标签: php arrays multidimensional-array

我的数据库中有一些数据有些像网格一样。项目位于“行”和“列”中。

我正在编写一些PHP代码来查询数据库中的数据,将其放入内部数组,对其进行一些处理,然后输出显示它的HTML表。

我的问题是,如果内部数组是多维的,就像这样吗?

$mydata[$row][$column]

或者它应该是扁平的,像这样吗?

$mydata[$row . "_" . $column]

代码可能会经常运行(这是多个用户可能会看到的实时刷新)所以我想要最有效率的那个。我的直觉反应表明,平面数组从字符串连接开始会慢一些,而多维数组从嵌套查找开始会慢一些。

我考虑过暂时不存储数据,只是直接从数据本身输出表。不幸的是,后处理的本质意味着我无法做到这一点(某些显示属性需要根据以后的行和列进行更改)。

2 个答案:

答案 0 :(得分:6)

一般来说,只有通过基准测试证明它很重要才有意义,但在这种情况下,第一种方法是明显的正确选择。这就是如何使用数组。使用整数索引,数组访问速度最快。构建连接字符串键是一个坏主意,但同样,通过一些简单的基准测试来证明这一点非常容易。

答案 1 :(得分:1)

为什么不使用它:

${"mydata" . "_" . $row . "_" . $column}

我在开玩笑。这就是为什么多维,你的第一个示例数组会更好的原因。你的第二个例子就在两者之间。

对于搜索,排序以及其他所有内容,我建议$mydata[$row][$column]