2010-11-25 19 views
0

我一直在使用一个函数,当我第一次开始编程时(或稍后至少)做了简单但非常有用的任务根据父母和孩子组织阵列。例如,如果你有一个在数据库中可以有无限深度的子项的项目列表,并且你需要在具有可视化的html select元素中按顺序显示列表每个孩子的深度表示( - )。需要一个更好,更少的内存密集的方式来组织一个unnested父 - >子数组

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

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

回答

1

采取count()功能圈外。这是一个瓶颈。相反的:

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

使用此:

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

InsertAfter()功能能够被轻松地使用PHP的array_splice()和/或array_slice()完成。

+0

感谢这是一个相当显着的速度提高,但我很好奇......我是一次又一次地将数组加载到内存中还是PHP智能足以处理它正确? – Jon 2010-11-25 15:48:24

相关问题