if($array[$i]<=$key)
$left_arr[]=$array[$i];
else
$right_arr[]=$array[$i];
}
$left_arr=quick_sort($left_arr);
$right_arr=quick_sort($right_arr);
returnarray_merge($left_arr,array($key),$right_arr);
}
2.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
//二分查找(数组里查找某个元素)
functionbin_sch($array,$low,$high,$k){
if($low<=$high){
$mid=intval(($low+$high)/2);
if($array[$mid]==$k){
return$mid;
}elseif($k<$array[$mid]){
returnbin_sch($array,$low,$mid-1,$k);
}else{
returnbin_sch($array,$mid+1,$high,$k);
}
}
return-1;
}
//顺序查找(数组里查找某个元素)
functionseq_sch($array,$n,$k){
$array[$n]=$k;
for($i=0;$i<$n;$i++){
if($array[$i]==$k){
break;
}
}
if($i<$n){
return$i;
}else{
return-1;
}
}
3.写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
//二维数组排序,$arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
functionarray_sort($arr,$keys,$order=0){
if(!
is_array($arr)){
returnfalse;
}
$keysvalue=array();
foreach($arras$key=>$val){
$keysvalue[$key]=$val[$keys];
}
if($order==0){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalueas$key=>$vals){
$keysort[$key]=$key;
}
$new_array=array();
foreach($keysortas$key=>$val){
$new_array[$key]=$arr[$val];
}
return$new_array;
}
一份php面试题(附答案)2007-06-2510:
36
考的很基础,但基础不牢,有一批不会做。
像在HTTP1.0中,状态码401的含义,error_reporting(2047)这些不知道。
但用2047似乎有点儿变态,太不易读。
如果可以参考手册~~~~
*1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量
(1)中;而链接到当前页面的URL记录在预定义变量
(2)中。
2.执行程序段
phpecho8%(-2)?
>将输出(3)。
3.在HTTP1.0中,状态码401的含义是(4);如果返回“找不到文件”的提示,则可用header函数,其语句为(5)。
4.数组函数arsort的作用是(6);语句error_reporting(2047)的作用是(7)。
5.PEAR中的数据库连接字符串格式是(8)。
6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
(9)。
7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,
然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
8.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。
9.类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是(14)。
10.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.
11.SQL中LEFTJOIN的含义是(16)。
如果tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),
要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。
12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。
13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
14.简述论坛中无限分类的实现原理。
15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。
用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。
//答案(填空):
1.echo$_SERVER['PHP_SELF'];echo$_SERVER["HTTP_REFERER"];
2.0
3.(4)未授权(5)header("HTTP/1.0404NotFound");
4.(6)对数组进行逆向排序并保持索引关系 (7)Allerrorsandwarnings
5.没弄明白
6./