需要一种更好,更少内存密集的方式来组织一个unnested parent->子数组

时间:2010-11-25 13:49:08

标签: php arrays hierarchy hierarchical-data

我一直在使用我在第一次开始编程时所做的功能(或者至少在此之后不久)来完成基于父母和孩子组织数组的简单但非常有用的任务。例如,如果您有一个可以在数据库中具有无限深度子项的项目列表,那么这将是有用的示例,并且您需要在具有视觉的html选择元素中按顺序显示列表每个孩子的深度表示( - )。

现在,我有这样做的功能,它们可以在我把它们放入的所有情况下工作,但是它们无数次克隆阵列......到目前为止这还不是问题,但我开始在可能需要组织数万个条目的地方使用此功能。所以我希望有人可以帮助我优化它。

代码:http://pastebin.com/knk0Fyd0

1 个答案:

答案 0 :(得分:1)

count()功能退出循环。这是一个瓶颈。而不是:

for ($i=0;$i<count($array);$i++)

使用此:

$count=count($array);
for ($i=0;$i<$count;$i++)

您的InsertAfter()功能可以通过PHP的array_splice()和/或array_slice()轻松完成。