PHP数组排序 (笔试题)一份不错的php面试题(附答案)
发布时间:2022-10-11 10:34:51 所属栏目:PHP教程 来源:
导读: “轻松学PHP”,有学习文档,框架视频教程,网站教程,提供百度分享给大家下载,收藏。大家关注后回复关键词,便可获取!平台将与大家分享前端到后端的实例,学习语法,学习教程,技巧等!欢迎大家关注
|
“轻松学PHP”,有学习文档,框架视频教程,网站教程,提供百度分享给大家下载,收藏。大家关注后回复关键词,便可获取!平台将与大家分享前端到后端的实例,学习语法,学习教程,技巧等!欢迎大家关注! 文章正文内容 一份不错的php面试题,附答案,有准备换工作的同学可以参考一下. 一、基础题 1. 写出如下程序的输出结果 ????$str1?=?null; ????$str2?=?false; ????echo?$str1==$str2???'相等'?:?'不相等'; ????$str3?=?''; ????$str4?=?0; ????echo?$str3==$str4???'相等'?:?'不相等'; ????$str5?=?0; ????$str6?=?'0'; ????echo?$str5===$str6???'相等'?:?'不相等';?> 2. 写出如下程序的输出结果 ????$a1?=?null; ????$a2?=?false; ????$a3?=?0; ????$a4?=?''; ????$a5?=?'0'; ????$a6?=?'null'; ????$a7?=?array(); ????$a8?=?array(array()); ????echo?empty($a1)???'true'?:?'false'; ????echo?empty($a2)???'true'?:?'false'; ????echo?empty($a3)???'true'?:?'false'; ????echo?empty($a4)???'true'?:?'false'; ????echo?empty($a5)???'true'?:?'false'; ????echo?empty($a6)???'true'?:?'false'; ????echo?empty($a7)???'true'?:?'false'; ????echo?empty($a8)???'true'?:?'false';?> 3. 写出如下程序的输出结果 ????$test?=?'aaaaaa'; ????$abc?=?&?$test; ????unset($test); ????echo?$abc;?> 4. 写出如下程序的输出结果 ????$count?=?5; ????function?get_count(){ ????????static?$count?=?0; ????????return?$count++; ????} ????echo?$count; ????++$count; ????echo?get_count(); ????echo?get_count();?> 5. 写出如下程序的输出结果 ????$GLOBALS['var1']?=?5; ????$var2?=?1; ????function?get_value(){ ????????global?$var2; ????????$var1?=?0; ????????return?$var2++; ????} ????get_value(); ????echo?$var1; ????echo?$var2;?> 6. 写出如下程序的输出结果 ????function?get_arr($arr){ ????????unset($arr[0]); ????} ????$arr1?=?array(1,?2); ????$arr2?=?array(1,?2); ????get_arr(&$arr1); ????get_arr($arr2); ????echo?count($arr1); ????echo?count($arr2);?> 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;?$iif?($array[$i]? ????????????$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?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是升序PHP数组排序,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; } (编辑:百客网 - 百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

