博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一份不错的php面试题(附答案)
阅读量:6317 次
发布时间:2019-06-22

本文共 3096 字,大约阅读时间需要 10 分钟。

  hot3.png

一份不错的php面试题,附答案,有准备换工作的同学可以参考一下.

一、基础题
1. 写出如下程序的输出结果

2. 写出如下程序的输出结果

3. 写出如下程序的输出结果

4. 写出如下程序的输出结果

5. 写出如下程序的输出结果

6. 写出如下程序的输出结果

7. 使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
【答案】
(以下答案不一定是最好的,只是一个简单的参考)
一、基础题
1. 相等 相等 不相等
2. true true true true true false true false
3. aaaaaa    参考: 里面的结论二

4. 5 0 1

5. 5 2
6. 1 2
7. 使用五种以上方式获取一个文件的扩展名

function get_ext1($file_name){    return strrchr($file_name, '.');}function get_ext2($file_name){    return substr($file_name, strrpos($file_name, '.'));}function get_ext3($file_name){    return array_pop(explode('.', $file_name));}function get_ext4($file_name){    return pathinfo($file_name, PATHINFO_EXTENSION);}function get_ext5($file_name){    return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));}

二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
//冒泡排序(数组排序)

function bubble_sort($array){    $count = count($array);    if ($count <= 0) return false;    for($i=0; $i<$count; $i++){        for($j=$i; $j<$count-1; $j++){            if ($array[$i] > $array[$j]){                $tmp = $array[$i];                $array[$i] = $array[$j];                $array[$j] = $tmp;            }        }    }    return $array;}

//快速排序(数组排序)

function quick_sort($array) {    if (count($array) <= 1) return $array;    $key = $array[0];    $left_arr = array();    $right_arr = array();    for ($i=1; $i
<= $key)            $left_arr[] = $array[$i];        else            $right_arr[] = $array[$i];    }    $left_arr = quick_sort($left_arr);    $right_arr = quick_sort($right_arr);    return array_merge($left_arr, array($key), $right_arr);}

2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

//二分查找(数组里查找某个元素)

function bin_sch($array, $low, $high, $k){    if ($low <= $high){    $mid = intval(($low+$high)/2);    if ($array[$mid] == $k){    return $mid;    }elseif ($k < $array[$mid]){    return bin_sch($array, $low, $mid-1, $k);    }else{    return bin_sch($array, $mid+1, $high, $k);    }    }    return -1;}

//顺序查找(数组里查找某个元素)

function seq_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是降序

function array_sort($arr, $keys, $order=0) {    if (!is_array($arr)) {        return false;    }    $keysvalue = array();    foreach($arr as $key => $val) {        $keysvalue[$key] = $val[$keys];    }    if($order == 0){        asort($keysvalue);    }else {        arsort($keysvalue);    }    reset($keysvalue);    foreach($keysvalue as $key => $vals) {        $keysort[$key] = $key;    }    $new_array = array();    foreach($keysort as $key => $val) {        $new_array[$key] = $arr[$val];    }    return $new_array;}

转载于:https://my.oschina.net/banbo/blog/303308

你可能感兴趣的文章
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
初识闭包
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
AOP动态代理
查看>>
Yii2.0 下的 load() 方法的使用
查看>>
华为畅玩5 (CUN-AL00) 刷入第三方twrp Recovery 及 root
查看>>
[转] ReactNative Animated动画详解
查看>>
DNS原理及其解析过程
查看>>
没想到cnblog也有月经贴,其实C#值不值钱不重要。
查看>>
[转] Entity Framework Query Samples for PostgreSQL
查看>>
软件需求分析的重要性
查看>>
HTML5-placeholder属性
查看>>
poj 2187:Beauty Contest(旋转卡壳)
查看>>
Python-库安装
查看>>
普通人如何从平庸到优秀,在到卓越
查看>>
SLAM数据集
查看>>
c#学习笔记05——数组&集合
查看>>
【图论算法】Dijstra&BFS
查看>>