Home  >  Article  >  Backend Development  >  8 PHP array interview questions, PHP array test questions_PHP tutorial

8 PHP array interview questions, PHP array test questions_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:48:421317browse

8 PHP array interview questions, PHP array test questions

PHP array questions found online, prepare to do it yourself and record it.

1. Write a function to create an array with a length of 10. The elements in the array are increasing odd numbers, and the first item is 1.
Copy code The code is as follows:

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:
Copy code 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 numbers in the array are increasing geometric numbers, the ratio is 3, and the first item is 1.
Copy code The code is as follows:

//$num is the ratio
Function arrsort($first,$length,$num){

$arr= array();
             for($i=$first;$i<=$length;$i){
 
                          //pow($num,$i-2); returns $num raised to the ($i-2) power
                     $arr[] = $num*pow($num,$i-2);
          }
            return $arr;
                                                                

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

Print_r($arr1);

Output:


Copy code 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. Find the subscript of the largest number in the array.
Copy code 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:


Copy code The code is as follows: b


4. Create an array with a length of 10. The elements in the array satisfy the rules of the Fibonacci sequence.

(The Fibonacci sequence, also known as the golden section sequence, refers to such a sequence: 1, 1, 2, 3, 5, 8, 13, 21,... In mathematics, the Fibonacci sequence It is defined recursively as follows: F0=0, F1=1, Fn=F(n-1) F(n-2) (n>=2, n∈N*). In particular, the 0th item is 0, item 1 is the first 1)


Copy code The code is as follows:

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 "
";</p>
<p>
print_r(arrFibo(10));<br>
echo "
";

Output:


Copy code 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 largest number and the smallest number in the array.

Two methods:

①max/min

Output:


Copy code The code is as follows: 102

②sort sorts the elements from small to large/rsort sorts the elements from large to small
Copy code The code is as follows:

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 5 items of an array with a length of more than 10, and change the order into the first 5 items, such as {1,2,3,4,5,6,7,8,9 ,10} becomes {6,7,8,9,10,1,2,3,4,5}.

Idea: First cut the array to the corresponding length (array_slice), and then splice the two arrays (array_merge)
Copy code The code is as follows:

function arrsort($arr){

$num = count($arr);

if($num > 10){
 
​​​​ //array_slice($arr, starting position, interception length, retained index (default is false))
          $arr_firstpart = array_slice($arr,0,$num-5,true);
          $arr_lastpart = array_slice($arr,($num-5),5,true);
}else{
 
echo "The array does not exceed 10 elements, please re-enter";
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 "

";</p>
<p>print_r($arr);</p>
<p>echo "<br>= = = = = After splicing = = = = <br><br>";</p>
<p>print_r(arrsort($arr));</p>
<p>echo "
";

Output:
Copy code 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 = = = =
Copy code 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 array does not meet the length of 10:
Copy code The code is as follows:
$arr = array("a"=>1,2,3);

Output:
Copy code The code is as follows:
Array
(
[a] => 1
[0] => 2
[1] => 3
)

= = = = = After splicing = = = =

The array does not exceed 10 elements, please re-enter

7. Concatenate the two arrays into a new array.

Method ① Use array_merge() function
Copy code The code is as follows:
array_merge($arr1,$arr2);

Method ② Use the array_merge_recursive() function to recursively append the array

( The array_merge_recursive() function, like the array_merge() function, merges the elements of one or more arrays. The values ​​in one array are appended to the previous array. And returns the resulting array.

However, unlike array_merge(), when there are duplicate key names, the value will not be overwritten, but multiple values ​​with the same key name will be recursively formed into an array. )
Copy code The code is as follows:

$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 "

";<br>
Print_r($arr3);</p>
<p> echo "<br> = = = = = <br><br>";</p>
<p> print_r($arr4);<br>
echo "
";

Output:
Copy code The code is as follows:
Array
(
[a] => Dee
[b] => 2
[0] => 3
[1] => 3
[2] => 5
)

= = = = =
Copy code The code is as follows:
Array
(
[a] => Array
(
                                        [0] => 1
                                              [1] => )

[b] => 2

[0] => 3
[1] => 3
[2] => 5
)

The value 1 with index "a" in the first output array is indexed over by the value Dee with index "a" in the second array.

Method ③
Copy code The code is as follows:

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 "
";<p>
print_r(arrsort($arr1,$arr2));<br>
echo "
";

Output:


Copy code The code is as follows: Array
(
[a] => 1
[b] => 2
[0] => 3
[1] => Dee
[2] => 3
[3] => 5
)

If it is an indexed array and there is a duplicate index, the duplicate index in the second array will be modified to a new index.

8. Array reverse order (rsort function cannot be used, new array cannot be generated)

Using the array_reverse() function will create a new array, so it cannot be used.


Copy code The code is as follows:

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

$i = "";//The subscript of the number to be replaced
$j = "";//Temporary variable
$k = "";//The subscript of the number to be replaced

$len = count($arr);

$half_len = floor($len/2);//Round down, the rounded value is the number of loops

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

$j = $arr[$i];

 
//Judge the odd or even number of arrays
If($len%2!=0){ //Odd number
 
          $k = $half_len*2-$i;
}else{
         
           //Even number
          $k = $half_len*2-$i-1;
}

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

$arr[$k] = $j;
}

echo "
";<p>
print_r($arr);<br>
echo "
";

Output:

Copy code The code is as follows: Array
(
[0] => 10
[1] => 1
[2] => c
[3] => b
[4] => a
)

http://www.bkjia.com/PHPjc/1021095.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1021095.htmlTechArticle8 PHP array interview questions, PHP array test questions PHP array questions found online, prepare to do it yourself and record it . 1. Write a function to create an array with a length of 10. The elements in the array are increasing odd...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn