【问题标题】:PHP, Array of Arrays vs Array of ObjectsPHP,数组数组与对象数组
【发布时间】:2010-07-10 09:05:57
【问题描述】:

我正在根据从某处获取的一些数据创建 PHP 数据结构。

如果我将这些信息编码到某个 标准 容器中,例如 XML 或 JSON,我会使用这种结构:

[ {'name': 'Lupin', 'age': '13'}, {'name': 'Igor', 'age': '24'}, ... ];

但是我有点不确定在 PHP 中使用什么(数组数组与对象数组)。

有一件事是我不太关心可读性,但我希望能够对这个数组进行排序(可能很大)。例如,我可能希望将其排序为 最大 年龄或其他。

那么我应该为 PHP 中的数据使用什么结构?我主要想要一些性能比较。

【问题讨论】:

  • 如果事情变得非常大并且您想要可排序性,那么在数据库中记录数据不是一个好的选择吗?
  • 数据库实际上是一个非常好的主意,即使它只是内存中的一个mysql或sqlite表。
  • @Peter Ajtai,存储在数据库中的问题是每次从用户运行我的 PHP 脚本时,它都需要自己的私有数据空间,它不能破坏整个数据库(其他人同时操作的数据)。但是,如果有可能我可以创建一个只能由该用户请求访问的“临时表”。这是人们做的事情吗?我不经常使用数据库,所以我不知道。

标签: php arrays data-structures object


【解决方案1】:

@Temporary Table:MySQL 确实允许通过CREATE TEMPORARY TABLE 创建临时表。这些表只对当前连接可见,所以一定不要使用持久连接;)

【讨论】:

    【解决方案2】:

    虽然数组是最直接的方法,但不要忘记SPL Datastructures。根据 UseCase,它们可以比数组执行得更好。

    另外,我建议不要过多考虑性能,直到它开始对应用程序产生负面影响(您知道过早的优化是万恶之源)。您的架构首先应该是可维护的。如果您决定遵循 OOP 范式,那么性能就不是您最重要的因素。它的设计并没有考虑到速度。使用对象时,您是在尝试解决复杂性问题,而不是提高性能。

    我会说现在就使用对你有用的东西。然后做一些基准测试,当它执行得太慢时,进行优化。

    【讨论】:

      猜你喜欢
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      相关资源
      最近更新 更多