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历年面试题

学习

古诗词的独特文学魅力

阅读(90)

本文为您介绍古诗词的独特文学魅力,内容包括形容文学魅力的句子精选,文学典型艺术魅力的理解,我感受到了文学的魅力。形容文学魅力的句子精选在现实生活或工作学习中,大家总免不了要接触或使用句子吧,不同类型的句子具有不同的作用。其实

学习

c语言数组的用法

阅读(94)

本文为您介绍c语言数组的用法,内容包括什么是C语言数组,c语言数组是从什么开始的,一维数组c语言。什么是C语言数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。

学习

励志的文学经典

阅读(91)

本文为您介绍励志的文学经典,内容包括励志的文学句子,美文励志精选,文学经典语录励志。励志的文学句子励志的文学句子,时刻激励我们的话语。下面是整理的一些励志的文学句子,欢迎阅读。励志的文学句子11、人生天地之间,若白驹之过隙,忽然而

学习

鸦雀无声的造句短的

阅读(112)

本文为您介绍鸦雀无声的造句短的,内容包括鸦雀无声的造句,鸦雀无声的造句怎么造,悄无声息的造句。鸦雀无声的造句造句指懂得并使用字词,按照一定的句法规则造出字词通顺、意思完整、符合逻辑的句子。依据现代语文学科特征,可延伸为写段、

学习

繁花落尽月落无声

阅读(92)

本文为您介绍繁花落尽月落无声,内容包括月落无声网络散文。月落无声网络散文在学习、工作或生活中,许多人都写过散文吧?广义上的散文是指不追求押韵和句式工整的文章体裁,与韵文、骈文相对。你知道怎么才能写好散文吗?下面是为大家收集的月

学习

无声的力量作文600字

阅读(102)

本文为您介绍无声的力量作文600字,内容包括无声的力量作文,无声的力量作文议论文,无声的力量作文初中。无声的力量作文无论在学习、工作或是生活中,说到作文,大家肯定都不陌生吧,根据写作命题的特点,作文可以分为命题作文和非命题作文。那么

学习

师爱无声作文600字

阅读(83)

本文为您介绍师爱无声作文600字,内容包括师爱无声作文,师爱无声作文四年级500字散文,师爱无声作文开头。师爱无声作文在平日的学习、工作和生活里,大家或多或少都会接触过作文吧,通过作文可以把我们那些零零散散的思想,聚集在一块。那么你

学习

文学优美句子

阅读(71)

本文为您介绍文学优美句子,内容包括关于文学优美句子,关于文学的句子摘抄,文学名著优美句子。关于文学优美句子在日常生活或是工作学习中,大家都收藏过令自己印象深刻的句子吧,根据结构的不同句子可以分为单句和复句。那么什么样的句子才

学习

c语言中指针和数组的区别和联系

阅读(100)

本文为您介绍c语言中指针和数组的区别和联系,内容包括C语言中指针与数组的区别,c语言怎么传递数组指针,c语言指针和数组。C语言中指针与数组的区别通俗理解数组指针和指针数组,C语言中指针与数组有什么区别呢?应该怎么去区分?下面是为大家

学习

文学经典语录摘录

阅读(115)

本文为您介绍文学经典语录摘录,内容包括文学的优美句子摘录,文学作品里的优美句子,文学名句摘录短句。文学的优美句子摘录驻足,不再前行,也不再停留,空留一个躯壳在原地静立,灵魂已在你的影子下寄居,时时刻刻陪伴你。一见钟情的情,即使彼此之

学习

c语言如何给数组赋值

阅读(79)

本文为您介绍c语言如何给数组赋值,内容包括C语言数组知识点总结,快速掌握c语言数组知识,c语言数组基础知识。C语言数组知识点总结C语言是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元,下面是关于C语言数组知识点总结

学习

五位数发财寓意的数字组合

阅读(136)

本文为您介绍五位数发财寓意的数字组合,内容包括最有寓意的五位数组合,比较有寓意的5位数,五位数组合一览表。最有寓意的五位数组合最有寓意的五位数组合,在选择楼层的时候,大家也都会偏向于吉利数字比较多,今天我们将详细聊一下最有寓意

学习

c语言中数组的定义和使用

阅读(92)

本文为您介绍c语言中数组的定义和使用,内容包括C语言数组的定义及引用,c语言数组引用,c语言定义与引用数组的区别。C语言数组的定义及引用数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。以下

学习

文学的句子摘抄大全100句

阅读(74)

本文为您介绍文学的句子摘抄大全100句,内容包括文学素养的句子(精选),文学素养高的词句,文学著作中的唯美句子。文学素养的句子(精选240句)在日常生活或是工作学习中,大家对句子都再熟悉不过了吧,句子能表达一个完整的意思,如告诉别人一件事情,

学习

c语言数组的用法

阅读(94)

本文为您介绍c语言数组的用法,内容包括什么是C语言数组,c语言数组是从什么开始的,一维数组c语言。什么是C语言数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。

学习

面试常见问题及回答技巧大全

阅读(130)

本文为您介绍面试常见问题及回答技巧大全,内容包括面试常见问题及回答技巧,面试常见问题及回答技巧通用,面试常见问题及回答技巧自我介绍。面试常见问题及回答技巧面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接

学习

军校面试问题及答案

阅读(144)

本文为您介绍军校面试问题及答案,内容包括军校面试问题,军校面试通过率,军校面试的方法和技巧。军校面试问题很多同学不知道军校面试会问一些什么问题,不知道该如何回答?下面是为大家收集了军校面试问题,希望可以帮助到大家!1、选择武警院校

学习

面试中常见的问题及答案

阅读(113)

本文为您介绍面试中常见的问题及答案,内容包括如何应对面试中常见问题,会计面试常见问题及答案,企业面试常见问题及答案。如何应对面试中常见问题对社会经验有所欠缺的职场新手来说,求职面试的时候有一条是很重要的。下面是为大家整理的

学习

面试的心理障碍怎么克服

阅读(127)

本文为您介绍面试的心理障碍怎么克服,内容包括应对面试如何克服心理障碍,面试时遇到心理障碍怎么办,如何消除面试心理障碍。应对面试如何克服心理障碍现代社会,经济飞速发展,机遇与风险同时存在,跳槽也已经成为人们生活中的常事。所以,面试

学习

开放性面试问题大全

阅读(93)

本文为您介绍开放性面试问题大全,内容包括开放性面试问题,开放性面试问题答题技巧,开放性的面试。开放性面试问题在现实学习生活中,是不是听到知识点,就立刻清醒了?知识点也可以理解为考试时会涉及到的知识,也就是大纲的分支。为了帮助大家

学习

法国hec商学院面试

阅读(129)

本文为您介绍法国hec商学院面试,内容包括海外顶级商学院面试技巧,埃塞克商学院面试录取率,伦敦商学院面试淘汰率。海外顶级商学院面试技巧申请美国顶级商学院不是一件容易事,但它仍然吸引着许多白领精英前赴后继。语言考试、材料准备、Es

学习

邮储银行面试自我介绍范文3分钟

阅读(79)

本文为您介绍邮储银行面试自我介绍范文3分钟,内容包括邮储银行面试自我介绍,邮储银行面试自我介绍几分钟,邮储银行面试真题解析。邮储银行面试自我介绍当换了一个新环境后,时常要进行自我介绍,通过自我介绍可以让他人了解我们。写起自我介