PHP网站制作之树形算法
理解动态语言的概念,运做机制,熟悉PHP语法算法 <?//测试数据
$ar = array(
array(id=>1,pid=>0),
array(id=>2,pid=>0),
array(id=>3,pid=>2),
array(id=>4,pid=>0),
array(id=>5,pid=>3),
array(id=>6,pid=>1),
array(id=>7,pid=>1),
array(id=>8,pid=>6),
array(id=>9,pid=>7),
array(id=>10,pid=>9)
);
//排序函数
function cmd($a,$b) {
if($a==$b) return 0;
return $a>$b?1:-1;
}
//排序,为防止数据中父节点在子节点前面呈现,这类情形在屡次修正数据后常常会产生的
//排序的目标就是避免这类情形酿成的凌乱
uasort($ar,cmd);
//界说方针数组
$d = array();
//界说索引数组,用于纪录节点在方针数组的地位
$ind = array();
foreach($ar as $v) {
$v = array(); //给每一个节点附加一个child项
if($v == 0) {
$i = count($d);
$d[$i] = $v;
$ind[$v] =& $d[$i];
}else {
$i = count($ind[$v]);
$ind[$v][$i] = $v;
$ind[$v] =& $ind[$v][$i];
}
}
//反省了局
print_r($d);
?>
算法特色:使用B+树概念,只用一次轮回便可生成树形数组
虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 本文当是我的笔记啦,遇到的问题随时填充 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 做为1门年轻的语言,php一直很努力。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
页:
[1]