PHP数组面试考题

PHP数组面试考题

书,是人类共同的精神财富,是人类进步的阶梯。以下是为大家搜索整理的PHP数组面试考题,希望能给大家带来帮助!

1.写函数创建长度为10的数组,数组中的元素为递增的奇数,首项为1.

代码如下:

function arrsort($first,$length){

$arr = array();

for($i=$first;$i<=$length;$i++){

$arr[] = $i*2-1;

}

return $arr;

}

$arr1 = arrsort(1,10);

print_r($arr1);

输出:

代码如下:

Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 [5] => 11 [6] => 13 [7] => 15 [8] => 17 [9] => 19 )

2.创建长度为10的数组,数组中的数为递增的等比数,比值为3,首项为1.

代码如下:

//$num为比值

function arrsort($first,$length,$num){

$arr= array();

for($i=$first;$i<=$length;$i++){

//pow($num,$i-2);返回$num的($i-2)次方

$arr[] = $num*pow($num,$i-2);

}

return $arr;

}

$arr1 = arrsort(1,10,3);

print_r($arr1);

输出:

代码如下:

Array ( [0] => 1 [1] => 3 [2] => 9 [3] => 27 [4] => 81 [5] => 243 [6] => 729 [7] => 2187 [8] => 6561 [9] => 19683 )

3.求数组中最大数的下标.

代码如下:

function maxkey($arr){

$maxval = max($arr);

foreach($arr as $key=>$val){

if($maxval == $val){

$maxkey = $key;

}

}

return $maxkey;

}

$arr = array(0,-1,-2,5,"b"=>15,3);

echo maxkey($arr);

输出:

代码如下:

b

4.创建一个长度为10的数组,数组中的元素满足斐波拉契数列的规律.

( 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*). 特别指出:第0项是0,第1项是第一个1。)

代码如下:

function arrFibo($len){

$arr[0] = 0;

$arr[1] = 1;

for($i=2;$i<$len;$i++){

$arr[$i] = $arr[$i-1]+$arr[$i-2];

}

return $arr;

}

echo "

";

print_r(arrFibo(10));

echo "

";

输出:

代码如下:

Array

(

[0] => 0

[1] => 1

[2] => 1

[3] => 2

[4] => 3

[5] => 5

[6] => 8

[7] => 13

[8] => 21

[9] => 34

)

5.计算数组中最大数和最小数的差.

两种方法:

①max/min

输出:

代码如下:

102

②sort把元素按从小到大排序/rsort吧元素按从大到小排序

代码如下:

function arrsub($arr){

sort($arr);

$min = $arr[0];

rsort($arr);

$max = $arr[0];

$sub = $max - $min;

return $sub;

}

$arr = array(-1,-2,100);

echo arrsub($arr);

输出:

102

6.写一个方法,将一个长度超过10的数组最后5项直接截取,不改变顺序变为前5项,如{1,2,3,4,5,6,7,8,9,10}变为{6,7,8,9,10,1,2,3,4,5}.

思路:先把数组截取相应的长度( array_slice ),再把2段数组拼接( array_merge )

代码如下:

function arrsort($arr){

$num = count($arr);

if($num > 10){

//array_slice($arr,起始位置,截取长度,保留索引(默认为false))

$arr_firstpart = array_slice($arr,0,$num-5,true);

$arr_lastpart = array_slice($arr,($num-5),5,true);

}else{

echo "数组不超过10个元素,请重新输入";

exit();

}

//拼接

$arr_new = array_merge($arr_lastpart,$arr_firstpart);

return $arr_new;

}

$arr = array("a"=>1,2,3,8,9,6,"b"=>5,-1,"c"=>8,0,7);

echo "

";

print_r($arr);

echo "= = = = = 拼接后 = = = = ";

print_r(arrsort($arr));

echo "

";

输出:

代码如下:

Array

(

[a] => 1

[0] => 2

[1] => 3

[2] => 8

[3] => 9

[4] => 6

[b] => 5

[5] => -1

[c] => 8

[6] => 0

[7] => 7

)

= = = = = 拼接后 = = = =

代码如下:

Array

(

[b] => 5

[0] => -1

[c] => 8

[1] => 0

[2] => 7

[a] => 1

[3] => 2

[4] => 3

[5] => 8

[6] => 9

[7] => 6

)

当数组不满足长度为10时:

代码如下:

$arr = array("a"=>1,2,3);

输出:

代码如下:

Array

(

[a] => 1

[0] => 2

[1] => 3

)

= = = = = 拼接后 = = = =

数组不超过10个元素,请重新输入

7.将两个数组连接成一个新数组.

方法①使用array_merge()函数

代码如下:

array_merge($arr1,$arr2);

方法②使用array_merge_recursive()函数递归追加数组

( array_merge_recursive() 函数与 array_merge() 函数 一样,将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面。并返回作为结果的数组。

但是,与 array_merge() 不同的是,当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组。)

代码如下:

$arr = array("a"=>1,"b"=>2,3);

$arr2 = array("a"=>Dee,3,5);

$arr3 = array_merge($arr,$arr2);

$arr4 = array_merge_recursive($arr,$arr2);

echo "

";

print_r($arr3);

echo " = = = = = ";

print_r($arr4);

echo "

";

输出:

代码如下:

Array

(

[a] => Dee

[b] => 2

[0] => 3

[1] => 3

[2] => 5

)

= = = = =

代码如下:

Array

(

[a] => Array

(

[0] => 1

[1] => Dee

)

[b] => 2

[0] => 3

[1] => 3

[2] => 5

)

第一个输出的数组中索引为"a"的.值1被索引被第二个数组中索引为"a"的值Dee覆盖了。

方法③

代码如下:

function arrsort($arr1,$arr2){

$arr_new = $arr1;

foreach($arr2 as $key=>$val){

$arr_new[] = $val;

}

return $arr_new;

}

$arr1 = array("a"=>1,"b"=>2,3);

$arr2 = array("a"=>Dee,"c"=>3,5);

echo "

";

print_r(arrsort($arr1,$arr2));

echo "

";

输出:

代码如下:

Array

(

[a] => 1

[b] => 2

[0] => 3

[1] => Dee

[2] => 3

[3] => 5

)

如果是索引数组而且有重复的索引,则第二个数组中的这个重复的索引会被修改成新的索引。

8.数组逆序( 不能使用rsort函数,不能生成新数组 )

使用array_reverse()函数会创建新的数组,所以不能使用。

代码如下:

$arr = array("a","b","c",1,10);

$i = "";//要替换位置的数的下标

$j = "";//临时变量

$k = "";//被替换位置的数的下标

$len = count($arr);

$half_len = floor($len/2);//向下取整,取整的值是循环的次数

for($i=0;$i<$half_len;$i++){

$j = $arr[$i];

//判断数组个数奇偶

if($len%2!=0){ //奇数

$k = $half_len*2-$i;

}else{

//偶数

$k = $half_len*2-$i-1;

}

$arr[$i] = $arr[$k];

$arr[$k] = $j;

}

echo "

";

print_r($arr);

echo "

";

输出:

代码如下:

Array

(

[0] => 10

[1] => 1

[2] => c

[3] => b

[4] => a

)

php学习之php预定义变量

给大家介绍下php学习中经常要用到的php预定义变量,通过预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。

$_SERVER['SERVER_ADDR'] 当前运行脚本所在的服务器的ip地址。

$_SERVER['SERVER_NAME'] 当前运行脚本所在服务器主机的名称。

$_SERVER['REQUEST_METHOD'] 访问页面时的请求方法。

$_SERVER['REMOTE_ADDR'] 正在浏览当前页用户的ip地址。

$_SERVER['REMOTE_HOST'] 正在浏览当前页用户的主机名。

$_SERVER['REMOTE_PORT'] 用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。

$_SERVER['SERVER_PORT'] 服务器所使用的端口。

$_SERVER['SERVER_SIGNATURE'] 包含服务器版本和虚拟主机名的字符串。

$_SERVER['DOCUMENT_ROOT'] 当前运行脚本所在的文档根目录。

$_COOKIE 通过HTTPCookie传递到脚本的信息。这些是由执行php脚本时,通过setcookie()设置的。

$_SESSION 包含与所有会话变量有关的信息。$_SESSION变量主要应用于会话控制和页面间值的传递。

$_POST 通过post方法传递的参数信息。

$_GET 通过get方法传递的参数信息。

$_GLOBALS 由所有已定义的全局变量组成的数组。变量名就是该数组的索引。它可以称得上是所有超级变 量的超级集合。

PHP数组面试考题

转载请注明出处我优求知网 » PHP数组面试考题

学习

文明礼仪从我做起演讲稿汇编

阅读(33)

文明礼仪从我做起演讲稿汇编15篇演讲稿是一种实用性比较强的文稿,是为演讲准备的书面材料。在快速变化和不断变革的新时代,演讲稿在我们的视野里出现的频率越来越高,为了让您在写演讲稿时更加简单方便,下面是收集整理的文明礼仪从我做起演讲

学习

深夜想念一个人的说说

阅读(74)

本文为您介绍深夜想念一个人的说说,内容包括深夜想念一个人的说说朋友圈,深夜想念一个人的语录。深夜想念一个人的说说随着社交网络和信息技术的迅猛发展,越来越多人热衷于在朋友圈发布说说,用以宣泄自己的情绪,调节心情。想发说说却总是不

学习

公司领导讲话稿

阅读(78)

本文为您介绍公司领导讲话稿,内容包括公司领导讲话稿范文,公司领导讲话稿怎么写。公司领导讲话稿(15篇)现如今,我们越来越需要讲话稿,讲话稿是写出来供宣讲或宣扬的书面材料。为了让您在写讲话稿时更加简单方便,下面是收集整理的公司领导讲

学习

淘宝美工个人年终总结

阅读(46)

日子在弹指一挥间就毫无声息的流逝,回顾过去一年,在取得成绩的同时,我们也找到了工作中的不足和问题,该好好总结一下过去一年的工作了!相信写年终总结是一个让许多人都头痛的问题,以下是为大家收集的淘宝美工个人年终总结,欢迎阅读,希望大家能够

学习

精选学习的演讲稿范文合集七篇

阅读(69)

精选学习的演讲稿范文合集七篇演讲稿是在一定的场合,面对一定的听众,演讲人围绕着主题讲话的文稿。在快速变化和不断变革的新时代,接触并使用演讲稿的人越来越多,来参考自己需要的演讲稿吧!以下是收集整理的学习的演讲稿7篇,欢迎阅读与收藏。

学习

通用古风优美句子集锦30条

阅读(51)

通用古风优美句子集锦30条傅粉郎君又粉奴。教施粉与施朱。然冰玉照香酥。客能为神女赋,凭君送与雪儿书。魂东去觅桑榆。轼。以下是为大家准备的古风优美句子30条,欢迎大家前来欣赏。1、君坐过的沙发宽了,君爱的音乐停了,那天的臣妾等君等成

学习

精选形容风景优美的句子25条

阅读(84)

本文为您介绍精选形容风景优美的句子25条,内容包括形容天气晴朗风景优美的优美句子,形容家乡的风景优美的句子。精选形容风景优美的句子25条山坡上是一片树林,枝叶茂密,绿树成荫,最美的植物要数枸杞子啦。这时它们已经结出了果实,水灵灵、红

学习

骨干培训心得体会

阅读(30)

本文为您介绍骨干培训心得体会,内容包括骨干培训心得体会,骨干培训心得体会怎么写。骨干培训心得体会骨干培训心得体会1有幸参加了公司第一期专业骨干培训班,感觉收获良多。在此首先感谢公司、感谢一直为这次培训班默默工作的同事。通过5

学习

【必备】学习培训心得体会范文汇总

阅读(41)

【必备】学习培训心得体会范文汇总8篇有了一些收获以后,就很有必要写一篇心得体会,这样我们就可以提高对思维的训练。那么问题来了,应该如何写心得体会呢?以下是精心整理的学习培训心得体会8篇,希望能够帮助到大家。学习培训心得体会篇1七天

学习

PHP语言的特性有哪些

阅读(34)

无论在学习、工作或是生活中,许多人都用过PHP语言吧,面是帮大家整理的PHP语言的特性有哪些,仅供参考,欢迎大家阅读。

学习

父亲节的日记:感恩父亲节

阅读(33)

父亲节的日记:感恩父亲节山,那样高大、稳重、深沉;而我,拥有一份属于我自己的父爱,如山一样的父爱。对于爸爸,我很敬佩他,他虽然言语不多,却无时无刻不散发着一个成熟男人的味道,十五年来,从我记事的那天开始,与爸爸发生的一点一滴都深刻我心,从我

学习

企业安全培训心得体会

阅读(50)

本文为您介绍企业安全培训心得体会,内容包括企业安全培训心得体会简短,安全培训个人心得体会。企业安全培训心得体会企业安全培训心得体会1安全是人类最重要和最基本的需求。安全生产急事人们生命健康的保证,也是企业生存与发展的基础,更

学习

读巴黎圣母院有感

阅读(28)

本文为您介绍读巴黎圣母院有感 ,内容包括读巴黎圣母院有感1000字高中,读巴黎圣母院有感800字高中。读巴黎圣母院有感认真读完一本名著后,相信大家一定领会了不少东西,是时候写一篇读后感好好记录一下了。到底应如何写读后感呢?以下是精心整

学习

以感恩主题的小学生演讲稿锦集七篇

阅读(29)

以感恩主题的小学生演讲稿锦集七篇演讲稿的格式由称谓、开场白、主干、结尾等几部分组成。在学习、工作生活中,演讲稿使用的情况越来越多,你知道演讲稿怎样才能写的好吗?下面是收集整理的以感恩主题的小学生演讲稿7篇,希望对大家有所帮助。

学习

航空公司面试自我介绍

阅读(33)

本文为您介绍航空公司面试自我介绍,内容包括航空公司面试自我介绍,航空公司面试问题及回答技巧。航空公司面试自我介绍10篇来到一个新的地方后,时常需要我们进行一个自我介绍,用自我介绍往往可以让他人有一定的了解。千万不能认为自我介绍

学习

面试应知己知彼

阅读(47)

本文为您介绍面试应知己知彼,内容包括公考面试怎么知己知彼,知己知彼的面试,知己知彼面试技巧。面试给公司和应聘者提供了进行双向交流的机会,能使公司和应聘者之间相互了解,从而双方都可更准确做出聘用与否、受聘与否的决定。以下是帮大

学习

关于面试后的感谢信范文集合

阅读(43)

关于面试后的感谢信范文集合4篇在我们平凡的日常里,我们都可能会用到感谢信,我们通常在对别人表示感谢时会用到感谢信。还是对感谢信一筹莫展吗?下面是为大家收集的面试后的感谢信5篇,仅供参考,希望能够帮助到大家。面试后的感谢信篇1尊敬的

学习

医学生面试自我介绍

阅读(54)

本文为您介绍医学生面试自我介绍,内容包括医学生面试自我介绍模板,医学生面试自我介绍文案范文。医学生面试自我介绍当去到一个新环境下,我们总归要向他人介绍自己,自我介绍是让陌生人彼此认识的好方法。那么自我介绍应该包括什么内容呢?下

学习

面试回答时注意把控时间

阅读(30)

面试是一个求聘双方相互了解的过程。在此期间,为了更好的掌握求职者的个人信息,面试官总会询问一些他们关心的问题。这些面试问题无论是刁钻刻薄的也好,普通简单的也罢,在回答这些问题的时候你一定要注意把控时间,千万不能啰嗦拖沓。下面是精

学习

考研复试面试前需要准备什么

阅读(30)

本文为您介绍考研复试面试前需要准备什么,内容包括张雪峰讲考研复试中面试技巧,考研复试面试需要提前准备什么,找工作面试复试要准备些什么。我们在准备考研复试的面试之前,很多东西需要我们提前准备好。为大家精心准备了考研复试面试前

学习

美术教师面试自我介绍

阅读(33)

本文为您介绍美术教师面试自我介绍,内容包括美术教师面试自我介绍优点,美术面试试讲万能模板。美术教师面试自我介绍来到一个完全陌生的环境,我们有必要对自己进行适当的介绍,自我介绍可以唤起他人对我们的兴趣。但是自我介绍有什么要求呢

学习

博后面试常见问题回答

阅读(69)

本文为您介绍博后面试常见问题回答,内容包括博后面试一般问的问题,申请国外博后面试多久可以offer,博后面试常见问题。面试需要颜值,博士博士后面试更要才华!经过艰苦卓绝的海投,终于等来了几个面试,一般进入面试意味着老板差不多会给offer