仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 793|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之树形算法

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
理解动态语言的概念,运做机制,熟悉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[pid]==$b[pid]) return 0;
return $a[pid]>$b[pid]?1:-1;
}

//排序,为防止数据中父节点在子节点前面呈现,这类情形在屡次修正数据后常常会产生的
//排序的目标就是避免这类情形酿成的凌乱
uasort($ar,cmd);

//界说方针数组
$d = array();
//界说索引数组,用于纪录节点在方针数组的地位
$ind = array();

foreach($ar as $v) {
$v[child] = array(); //给每一个节点附加一个child项
if($v[pid] == 0) {
$i = count($d);
$d[$i] = $v;
$ind[$v[id]] =& $d[$i];
}else {
$i = count($ind[$v[pid]][child]);
$ind[$v[pid]][child][$i] = $v;
$ind[$v[id]] =& $ind[$v[pid]][child][$i];
}
}
//反省了局
print_r($d);
?>

算法特色:使用B+树概念,只用一次轮回便可生成树形数组
  虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。
透明 该用户已被删除
沙发
发表于 2015-2-4 13:13:54 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
再见西城 该用户已被删除
板凳
发表于 2015-2-9 07:13:50 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-10 10:31:10 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
深爱那片海 该用户已被删除
5#
发表于 2015-2-26 16:28:53 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
兰色精灵 该用户已被删除
6#
发表于 2015-3-8 13:30:30 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
若天明 该用户已被删除
7#
发表于 2015-3-11 19:42:56 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
再现理想 该用户已被删除
8#
发表于 2015-3-12 16:39:03 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
若相依 该用户已被删除
9#
发表于 2015-3-17 02:09:12 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
分手快乐 该用户已被删除
10#
发表于 2015-3-18 07:54:36 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
冷月葬花魂 该用户已被删除
11#
发表于 2015-3-25 13:22:04 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
小魔女 该用户已被删除
12#
发表于 2015-3-27 23:11:26 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
老尸 该用户已被删除
13#
发表于 2015-4-6 03:12:52 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
第二个灵魂 该用户已被删除
14#
发表于 2015-4-26 08:48:55 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
精灵巫婆 该用户已被删除
15#
发表于 2015-4-28 23:36:41 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
谁可相欹 该用户已被删除
16#
发表于 2015-5-1 13:10:45 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
愤怒的大鸟 该用户已被删除
17#
发表于 2015-5-1 21:11:50 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
莫相离 该用户已被删除
18#
发表于 2015-5-4 11:10:23 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
变相怪杰 该用户已被删除
19#
发表于 2015-5-8 12:05:36 | 只看该作者
做为1门年轻的语言,php一直很努力。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-6-9 13:23:39 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表