PHP读取大文件末尾N行的高效方法

我们先将指针移动到末尾,并向后倒退2个位置,通过fgetc读取一个字符,判断这个字符是不是”\n”也就是换行符,如果不是换行符,那么继续倒退一个位置再次判断,直到我们倒退到上一行的结尾换行符为止,直接使用fgets将一整行都取出来即可。这里面用到两个while循环,外层循环控制需要取得的行数,内层循环控制fseek动作。[……]

Read more

Continue Reading

约瑟夫环

是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

要求输入:n,k,m

输出:退出顺序

<?php[......]

Read more

Continue Reading

使用 PHP 实现冒泡排序,将数组 $a=array() 安装从小到大的方式进行排序

在要排序的一数组中,对当前还未排序好的范围内的全部数,自前向后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的数往上冒。

即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将他们互换。

<?php
$arr = [1,43,6,7,3,5,78];
functio[......]

Read more

Continue Reading

使用 PHP 秒速快速排序算法

基本思想:选择一个基准元素,通常选择第一个元素,通过一趟扫描,将待排序列分为两个部分,一部分比基准元素小(做数组),一部分大于等于基准元素组(右数组),此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

可以看到,这种方法是把大问题转变为小问题的方法,使用递归实现。[……]

Read more

Continue Reading

优化 MySQL 数据库的方法

1. 选取最实用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如“省份,性别”,最好设置为ENUM

2. 使用连接(JOIN)来代替子查询

3. 使用联合(UNION)来代替手动创建临时表

4. 事务处理

5. 锁表,优化事务处理

6. 使用外键,优化锁定表

7. 建立索引

8. 优化查询[……]

Read more

Continue Reading

PHP值传递和引用传递的区别

值传递是将变量的值复制一份,改变一个变量的值而不影响另一个变量的值。

引用传递是将变量的引用关系复制一份,改变一个变量的值另一个变量的值也会随之改变。

值传递:

形式:

$v1 = 1;
$v2 = $v1;

含义:将变量$v1的值复制一份,然后赋值给$v2,$v1和$v2具有两相同的值[……]

Read more

Continue Reading
Close Menu