PHP 数据结构与算法
在 PHP 中,一种类型几乎包办一切:array 是有序哈希映射,同时充当列表、字典和栈。在这条路径中,你会用 PHP 亲手实现它所替代的结构,以及它替代不了的结构,再用它们做排序、递归和图搜索,最后完成自动评分的面试题。全部免费,在浏览器中学习,大多数课程都有证书。
377 节课284 个挑战702 道测验题
- 适合初学者
AI 辅助编程帮助
动手实践的互动课程
每节课都有语音讲解
检验所学的测验
终点有一张路径证书,沿途还有 23 张
PHP 数据结构与算法,循序渐进
每一步都由 Coddy 现有的几门课程组成,每个“开始”按钮都会以 PHP 打开课程。还没有 PHP 版本的三门课程列在步骤之后。
- 1
- 2
- 3
- 4
- 5
- 6
在实践中学习
编写真实代码、查询数据库、搭建网站、掌握 AI 提示词。我们的互动课程涵盖现代开发者需要的每一项技能。
打造你的连胜
坚持下去,看着自己不断进步!记录每天的编程习惯,用冻结天数保护连胜,每天打卡都能赢取奖励。
12 天连胜
明天再来,保持你的连胜!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
加倍或归零
第 5 天,共 7 天
连胜冻结
2 left
随时随地写代码
随时随地继续你的编程学习旅程!无需配置,无需下载:打开就能写代码。支持 iOS、Android 和 Web,评分高达 4.9 星。
你并不孤单
在全球排行榜上一较高下,邀请好友赢取奖励,为彼此的成就喝彩。和好友一起编程更有趣!
多种学习方式
阅读、收听、自我测验、问 AI,或者查阅学过的任何内容。每节课都配合你的节奏。
变量是一个有名字的容器,用来存储值,方便你在程序后面引用。
在 Python 中,创建变量只需写下名字、一个等号,再写上要存储的值。
值可以随时间变化。给这个名字重新赋值,它就会指向新的值。
获得证书
每完成一门课程都能获得证书。把证书添加到你的 LinkedIn 个人资料和简历中,向雇主展示你的编程能力。
为什么在 Coddy 上用 PHP 学数据结构与算法
array的真面目。PHP 的array是有序哈希映射,所以$a[] = $x和$a['key'] = $x都能用,这也是array_shift很慢的原因:它会给剩下的每个元素重新编号。亲手实现真正的栈、队列和哈希表,你才会知道哪些数组操作很便宜,哪些悄悄地很昂贵。- 面向 Web 开发者的算法。WordPress 和 Laravel 都运行在 PHP 上,而一个慢页面有时是伪装起来的算法问题:在循环里调用
in_array,每一轮都是一次线性查找,而对带键数组使用isset平均是常数时间。能让你通过面试的思维方式,也正是能修好那个页面的思维方式。 - 几乎整条路径都用 PHP。每种数据结构、排序、图算法、递归挑战和面试题包都用 PHP 讲授。有三门课用其他语言讲授,列在步骤之后,各附链接:动态规划和 Python 面试系列用 Python,位运算用 C++。位运算从 PHP 读起来很轻松,因为 PHP 也有 C++ 的
&、|、^、~、<<和>>。 - 像面试一样评分。每节课都以一道 PHP 挑战结束,由测试用例检查。没通过时,Bugsy 会阅读你的代码,引导你找到修复方法,而不是直接给出答案。大多数课程提供免费证书,每张证书都可以通过专属 URL 验证。
关于用 PHP 学数据结构与算法的常见问题
PHP 适合学习数据结构与算法吗?
array。PHP 的数组灵活到可以当列表、字典和栈,而这恰恰掩盖了每个操作的开销。亲手实现这些结构,PHP 就是一门完全适合推理算法的语言;如果你的工作就是写 PHP,它也自然是你的面试语言。SPL 的哪些类对应哪些数据结构?
SplStack 和 SplQueue 是栈和队列,两者都基于 SplDoublyLinkedList;SplMinHeap 和 SplMaxHeap 是堆;SplPriorityQueue 是按优先级排序的最大堆;SplFixedArray 是使用整数索引的定长数组,比 array 更省内存。普通的 array 就是你的哈希表。PHP 没有树、字典树或图的类,这些要你在第一步和第二步中自己实现。为什么在 PHP 中用 array_shift 实现队列很慢?
array_shift 实现队列很慢?array_shift 的队列每次出队都是 O(n),清空整个队列需要平方时间。请使用 SplQueue,或者维护一个指向数组的头部索引并让它前移。第一步会让你亲手实现一个队列,这是看清两者区别最可靠的方法。PHP 的 sort() 是稳定排序吗?
sort() 是稳定排序吗?sort()、usort()、asort() 以及其他排序函数都会让相等的元素保持原来的顺序。在 8.0 之前没有这个保证,所以依赖相等元素顺序的代码在不同版本中可能表现不同。在第三步的八种排序中,归并排序和插入排序是稳定的,快速排序和堆排序不是;学完这一步,你就知道为什么。这条路径中哪些课程不是用 PHP 讲授的?
array。移植位运算技巧时有一个陷阱:如果 &、| 或 ^ 的两个操作数都是字符串,PHP 会对字符的字节值进行运算并返回字符串,所以要先确保值是整数。开始这条路径前需要先会 PHP 吗?
$next 属性的对象。如果这些对你来说还很陌生,可以先学 Coddy 免费的 PHP 课程,学完后再从这条路径继续。完成数据结构与算法路径能获得证书吗?
能。完成每一步,你就能获得整条数据结构与算法路径的一张免费证书。证书会列出你沿途完成的每门课程,并链接到每门课程各自的证书,任何人都能核实上面列出的每项技能。你可以把它添加到 LinkedIn 个人资料。这是 Coddy 颁发的结业证书,不是经过认证的学历资格。