8个PHP数组面试问题

8个PHP数组面试问题
PHP阵列问题在互联网上,做好准备,并记录它。

1。写函数创建一个长度为10的数组,数组中的元素是递增奇数,第一项是1。

复制代码代码如下所示:

< PHP

功能arrsort(美元美元第一,长度){

ARR =阵列(美元);

对于($ i = $第一;$ i = $长度;$ + +){

$ ARR { } =我* 2-1;

}

返回的数组;

}

$ arr1 = arrsort(1,10);

print_r(合前);
输出:

复制代码代码如下所示:

数组({ 0 } = 1 { 1 } > 3 { 2 } = 5 { 3 } = 7 { 4 } = 9 { 5 } = 11 { 6 } = 13 { 7 } = 15 { 8 } = 17 { 9 } = 19)
2。要创建一个长度为10的数组,数组中的数字是递增数量的等距数字,比例为3,第一项为1。

复制代码代码如下所示:

< PHP

与该比率

功能arrsort(美元美元美元,长度,NUM){

ARR =阵列(美元);

对于($ i = $第一;$ i = $长度;$ + +){
/ /战俘($num,$ I-2);返回($ I-2)子$民广场

ARR { } =美元美元数*战俘($num,$ I-2);

}

返回的数组;

}

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

print_r(合前);
输出:

复制代码代码如下所示:

数组({ 0 } = 1 { 1 } > 3 { 2 } = 9 { 3 } = 27 { 4 } = 81 { 5 } = 243 { 6 } = 729 { 7 } = 2187 { 8 } = 6561 { 9 } = 19683)
三.数组中最大数的下标。

复制代码代码如下所示:

功能启盛($ ARR){

美元($ ARR)Maxval =最大;

foreach(ARR美元美元美元关键= > Val){
(= =如果Maxval美元美元Val){
启盛美元=美元关键;

}

}

返回的启盛;

}

$ ARR =阵列(0,- 1,- 2,B= > 15,3);

回声启盛($ 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,第一是1第一。)

复制代码代码如下所示:

< PHP

功能arrfibo($ len){

ARR { 0 } = 0美元;

ARR { 1 } = 1美元;

($ i = 2;$ i;
ARR {我} =美元美元美元美元美元ARR { } + I-1 ARR { $ I-2 };

}

返回的数组;

}



print_r(arrfibo(10));


输出:

复制代码代码如下所示:

阵列



{ 0 } = 0

{ 1 } = 1

{ 2 } = 1

{ 3 } = 2

{ 4 } = 3

{ 5 } = 5

{ 6 } = 8

{ 7 } = 13

{ 8 } = 21

{ 9 } = 34


5。计算数组中的最大数和最小数之间的差额。

两种方法:

(1)最大 min

输出:

复制代码代码如下所示:

一百零二
(2)从大到小排序排序元素为 / rsort杆从大到小

复制代码代码如下所示:

< PHP

功能arrsub($ ARR){

排序($ ARR);

$分钟= $ ARR { 0 };

rsort($ ARR);

马克斯=美元美元ARR { 0 };

$ = $ max - $ min;

返回$;

}

ARR =阵列(1美元,2100);

回声arrsub($ ARR);
输出:

一百零二

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)

复制代码代码如下所示:

< PHP

功能arrsort($ ARR){

Num =数美元($ ARR);

如果($ > 10){
/ / array_slice($ ARR,起始位置,截取长度,保留指数(默认为false))

arr_firstpart美元(0美元= array_slice ARR,num-5美元,真的);

arr_lastpart = array_slice美元($ ARR(($ num-5),5,真的);

其他{ }
回声数组不超过10元,请重新输入

出口();

}
马赛克

arr_new美元= array_merge(arr_lastpart美元,美元arr_firstpart);

返回的arr_new;

}

$ ARR =阵列(= > 1,2,3,8,9,6,B= > 5,1,C= > 8,0,7);



print_r($ ARR);

:;

print_r(arrsort($ ARR));


输出:

复制代码代码如下所示:

阵列



{ 1

{ 0 } = 2

{ 1 } = 3

{ 2 } = 8

{ 3 } = 9

{ 4 } = 6

{ 5

{ 5 } = 1

{ 8

{ 6 } = 0

{ 7 } = 7


=

复制代码代码如下所示:

阵列



{ 5

{ 0 } = 1

{ 8

{ 1 } = 0

{ 2 } = 7

{ 1

{ 3 } = 2

{ 4 } = 3

{ 5 } = 8

{ 6 } = 9

{ 7 } = 6


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

复制代码代码如下所示:

$ ARR =阵列(= > 1,2,3);
输出:

复制代码代码如下所示:

阵列



{ 1

{ 0 } = 2

{ 1 } = 3


=

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

7。将两个数组连接到一个新数组中。

方法1使用array_merge()函数

复制代码代码如下所示:

array_merge($ ARR1 arr2美元);
方法2使用array_merge_recursive()函数的递归扩展阵列

(array_merge_recursive()函数,像array_merge()函数,一个或多个数组元素的融合。一个数组的值被添加到上一个数组的后面,并返回数组作为结果。

然而,随着array_merge()不同的是,当有重复键时,值不是盖的,但价值相同名称的数组多递归组合。)

复制代码代码如下所示:

< PHP

$ ARR =阵列(= > 1,B= > 2,3);

$ arr2 =阵列(= > Dee,3,5);
$ ARR3 = array_merge($ ARR,arr2美元);

$ ARR4 = array_merge_recursive(ARR美元美元,arr2);



print_r($ ARR3);

回声=;

print_r($ ARR4);


输出:

复制代码代码如下所示:

阵列



{ Dee

{ 2

{ 0 } = 3

{ 1 } = 3

{ 2 } = 5


= =

复制代码代码如下所示:

阵列



{数组



{ 0 } = 1

{ 1 } > Dee



{ 2

{ 0 } = 3

{ 1 } = 3

{ 2 } = 5


第一个输出数组的值1

方法3

复制代码代码如下所示:

< PHP

功能arrsort($ ARR1 arr2美元){

arr_new美元= $ ARR1;
foreach(arr2美元美元关键= > $ Val){
arr_new { } =瓦尔美元美元;

}

返回的arr_new;

}

$ arr1 =阵列(= > 1,B= > 2,3);

$ arr2 =阵列(= > Dee,C= > 3.5);



print_r(arrsort($ ARR1 arr2美元));


输出:

复制代码代码如下所示:

阵列



{ 1

{ 2

{ 0 } = 3

{ 1 } > Dee

{ 2 } = 3

{ 3 } = 5


如果它是一个索引数组并有一个重复的索引,那么第二个数组中的重复索引将被修改为一个新索引。

8。数组的逆序(不使用rsort功能,不会产生新的数组)

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

复制代码代码如下所示:

< PHP

$ ARR =阵列(

替换位置号

$;临时变量

替换为/下标位置号。

$ len =计数($ ARR);

half_len美元=地板($ Len / / / 2);向下舍入,舍入值的周期数

为($我= 0;美元美元美元我<< half_len;i++){

J = $ ARR { $我};
奇偶校验数组的数目/判断

如果(2美元)!= 0)
$ k =美元2美元half_len *我;

其他{ }
$ k =美元2美元half_len * 1.;

}

ARR {我} =美元美元美元美元K ARR { };

ARR { } =美元美元美元K J;

}



print_r($ ARR);


输出:

复制代码代码如下所示:

阵列



{ 0 } = 10

{ 1 } = 1

{ 2 }

{ 3 }

{ 4 }



免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部