This article mainly introduces eight PHP array interview questions, for example, writing a function to create an array with a length of 10, the elements in the array are an increasing odd number, the first item is 1, and the creation of an array with a length of 10, the number in the array is an ascending proportional number, the ratio is 3, and the first item is an equal question. if you need a friend, refer to the PHP array questions found on the Internet and prepare to record them.
1. write a function to create an array with a length of 10. the elements in the array are an increasing odd number and the first item is 1.
The code is as follows:
<? Php
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 );
Output:
The code is as follows:
Array ([0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 [5] => 11 [6] => 13 [7] => 15 [8] => 17 [9] => 19)
2. create an array with a length of 10. the number in the array is an ascending proportional number. the ratio is 3 and the first item is 1.
The code is as follows:
<? Php
// $ Num is the ratio
Function arrsort ($ first, $ length, $ num ){
$ Arr = array ();
For ($ I = $ first; $ I <= $ length; $ I ++ ){
// Pow ($ num, $ I-2); returns the power of $ num ($ I-2)
$ Arr [] = $ num * pow ($ num, $ I-2 );
}
Return $ arr;
}
$ Arr1 = arrsort (1, 10, 3 );
Print_r ($ arr1 );
Output:
The code is as follows:
Array ([0] => 1 [1] => 3 [2] => 9 [3] => 27 [4] => 81 [5] => 243 [6] => 729 [7] => 2187 [8] => 6561 [9] => 19683)
3. calculate the subscript of the largest number in the array.
The code is as follows:
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 );
Output:
The code is as follows:
B
4. create an array with a length of 10. the elements in the array meet the rules of the Fibonacci series.
(The Fibonacci series, also known as the Golden Series, refers to a series of numbers such as 1, 1, 2, 3, 5, 8, 13, 21 ,...... In mathematics, the Fibonacci series are defined as follows by recursive methods: F0 = 0, F1 = 1, Fn = F (n-1) + F (n-2) (n> = 2, n, N *). note: 0th items are 0, and 1st items are the first 1 .)
The code is as follows:
<? Php
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 "
";
Output:
The code is as follows:
Array
(
[0] => 0
[1] => 1
[2] => 1
[3] => 2
[4] => 3
[5] => 5
[6] => 8
[7] => 13
[8] => 21
[9] => 34
)
5. calculate the difference between the maximum and minimum numbers in the array.
Two methods:
① Max/min
Output:
The code is as follows:
102
② Sort sorts elements in ascending order/rsort bar elements in ascending order
The code is as follows:
<? Php
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 );
Output:
102
6. write a method to directly intercept the last five items of an array with a length greater than 10, without changing the order to the first five items, such as {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} changed to {6, 7, 8, 9, 10, 1, 2, 3, 4, 5 }.
Idea: first extract the corresponding length of the array (array_slice), and then splice two arrays (array_merge)
The code is as follows:
<? Php
Function arrsort ($ arr ){
$ Num = count ($ arr );
If ($ num> 10 ){
// Array_slice ($ arr, starting position, intercepting length, retained Index (false by default ))
$ Arr_firstpart = array_slice ($ arr, 0, $ num-5, true );
$ Arr_lastpart = array_slice ($ arr, ($ num-5), 5, true );
} Else {
Echo "the array contains no more than 10 elements. please input it again ";
Exit ();
}
// Splicing
$ 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"
===== After splicing ====
";
Print_r (arrsort ($ arr ));
Echo"
";
Output:
The code is as follows:
Array
(
[A] => 1
[0] => 2
[1] => 3
[2] => 8
[3] => 9
[4] => 6
[B] => 5
[5] =>-1
[C] => 8
[6] => 0
[7] => 7
)
===== After splicing ====
The code is as follows:
Array
(
[B] => 5
[0] =>-1
[C] => 8
[1] => 0
[2] => 7
[A] => 1
[3] => 2
[4] => 3
[5] => 8
[6] => 9
[7] => 6
)
When the length of an array is not equal to 10:
The code is as follows:
$ Arr = array ("a" => 1, 2, 3 );
Output:
The code is as follows:
Array
(
[A] => 1
[0] => 2
[1] => 3
)
===== After splicing ====
The number of elements in the array cannot exceed 10. enter a new value.
7. connect the two arrays into a new array.
Method ① use the array_merge () function
The code is as follows:
Array_merge ($ arr1, $ arr2 );
Method ② recursively append an array using the array_merge_recursive () function
(The array_merge_recursive () function, like the array_merge () function, combines the elements of one or more arrays. the values of an array are appended to the values of the previous array. Returns an array of results.
However, unlike array_merge (), when duplicate key names exist, the value is not overwritten. Instead, multiple values with the same key name are recursively grouped into an array .)
The code is as follows:
<? Php
$ 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 "
";
Output:
The code is as follows:
Array
(
[A] => Dee
[B] => 2
[0] => 3
[1] => 3
[2] => 5
)
=====
The code is as follows:
Array
(
[A] => Array
(
[0] => 1
[1] => Dee
)
[B] => 2
[0] => 3
[1] => 3
[2] => 5
)
The value 1 with the index "a" in the first output array is overwritten by the value Dee with the index "a" in the second array.
Method ③
The code is as follows:
<? Php
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 "
";
Output:
The code is as follows:
Array
(
[A] => 1
[B] => 2
[0] => 3
[1] => Dee
[2] => 3
[3] => 5
)
If an index array has duplicate indexes, the duplicate index in the second array will be changed to a new index.
8. array reverse order (rsort function cannot be used, and new array cannot be generated)
The array_reverse () function will create a new array, so it cannot be used.
The code is as follows:
<? Php
$ Arr = array ("a", "B", "c", 1, 10 );
$ I = ""; // subscript of the number of locations to be replaced
$ J = ""; // temporary variable
$ K = ""; // subscript of the number of replaced locations
$ Len = count ($ arr );
$ Half_len = floor ($ len/2); // round down. The value is the number of cycles.
For ($ I = 0; $ I <$ half_len; $ I ++ ){
$ J = $ arr [$ I];
// Judge the parity of the number of arrays
If ($ len % 2! = 0) {// Odd number
$ K = $ half_len * 2-$ I;
} Else {
// Even
$ K = $ half_len * 2-$ I-1;
}
$ Arr [$ I] = $ arr [$ k];
$ Arr [$ k] = $ j;
}
Echo"
";
print_r($arr);
echo "
";
Output:
The code is as follows:
Array
(
[0] => 10
[1] => 1
[2] => c
[3] => B
[4] =>
)