>  기사  >  백엔드 개발  >  8가지 PHP 배열 인터뷰 질문_php 기술

8가지 PHP 배열 인터뷰 질문_php 기술

WBOY
WBOY원래의
2016-05-16 20:13:002322검색

PHP 배열 질문을 인터넷에서 찾아서 직접 준비해서 녹음해봤습니다.

1. 길이가 10인 배열을 만드는 함수를 작성하세요. 배열의 요소는 홀수로 증가하며 첫 번째 항목은 1입니다.

코드 복사 코드는 다음과 같습니다.

함수 arrsort($first,$length){

$arr = 배열();
for($i=$first;$i<=$length;$i ){

$arr[] = $i*2-1;
}
         $arr 반환
}

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

출력:

코드 복사 코드는 다음과 같습니다.

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

2. 길이가 10인 배열을 만듭니다. 배열의 숫자는 기하학적 숫자로 증가하며 비율은 3이고 첫 번째 항목은 1입니다.
코드 복사 코드는 다음과 같습니다.

//$num은 비율입니다

함수 정렬($first,$length,$num){

$arr=배열();

             for($i=$first;$i<=$length;$i){
 
                         //pow($num,$i-2)는 $num을 ($i-2)제곱으로 반환합니다
                    $arr[] = $num*pow($num,$i-2);
          }
            $arr 반환
                                                          
$arr1 = 정렬(1,10,3);

Print_r($arr1);



출력:


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


3. 배열에서 가장 큰 숫자의 첨자를 찾습니다.


함수 maxkey($arr){

$maxval = 최대($arr);

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

 
If($maxval == $val){
                             
               $maxkey = $key;
}
}
$maxkey 반환;
}

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

echo maxkey($arr);



출력:




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)


코드 복사

코드는 다음과 같습니다.

함수 arrFibo($len){

$arr[0] = 0;
$arr[1] = 1;
for($i=2;$i<$len;$i ){
 
$arr[$i] = $arr[$i-1] $arr[$i-2];
}
$arr;
반환 }

에코 "

";<br>
print_r(arrFibo(10));<br>
echo "
";

출력:

코드 복사 코드는 다음과 같습니다.

배열
(
[0] => 0
[1] =>1
[2] =>1
[3] =>2
[4] =>3
[5] =>5
[6] =>8
[7] =>13
[8] =>21
[9] =>34
)

5. 배열에서 가장 큰 숫자와 가장 작은 숫자의 차이를 계산합니다.

두 가지 방법:

①최대/최소

출력:

코드 복사 코드는 다음과 같습니다.

102

②sort는 요소를 작은 것에서 큰 것으로 정렬합니다. rsort는 요소를 큰 것에서 작은 것 순으로 정렬합니다

코드 복사 코드는 다음과 같습니다.

함수 arrsub($arr){

정렬($arr);
$min = $arr[0];

rsort($arr);
$max = $arr[0];

$sub = $max - $min;

$sub 반환
}

$arr = 배열(-1,-2,100);

에코 arrsub($arr);

출력:

102

6. 길이가 10보다 큰 배열의 마지막 5개 항목을 직접 가로채서 순서를 {1,2,3,4,5,6과 같이 처음 5개 항목으로 변경하는 메서드를 작성하세요. ,7,8,9 ,10}은 {6,7,8,9,10,1,2,3,4,5}가 됩니다.

아이디어: 먼저 배열을 해당 길이(array_slice)로 자른 다음 두 배열을 연결합니다(array_merge)

코드 복사 코드는 다음과 같습니다.

함수 정렬($arr){

$num = 개수($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);
}그밖에{
 
echo "배열이 10개 요소를 초과하지 않습니다. 다시 입력하세요.";
종료();
}
 
//접합
$arr_new = array_merge($arr_lastpart,$arr_firstpart);

$arr_new 반환
}

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

에코 "

";</p>
<p>print_r($arr);</p>
<p>echo "<br>= = = = = 접합 후 = = = = <br><br>";</p>
<p>print_r(arrsort($arr));</p>
<p>에코 "
";

출력:

코드 복사 코드는 다음과 같습니다.

배열
(
[a] => 1
[0] => 2
[1] =>3
[2] =>8
[3] =>9
[4] =>6
[b] =>5
[5] => -1
[c] =>8
[6] =>0
[7] =>7
)

= = = = = 접합 후 = = = =
코드 복사 코드는 다음과 같습니다.

배열
(
[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);

출력:
코드 복사 코드는 다음과 같습니다.

배열
(
[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"=>디,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 "
";

출력:

코드 복사 코드는 다음과 같습니다.

배열
(
[a] =>디
[b] =>2
[0] =>3
[1] =>3
[2] =>5
)

= = = = =
코드 복사 코드는 다음과 같습니다.

배열
(
[a] => 배열
(
                                     [0] =>                                             [1] => )

[b] =>2 [0] =>3

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


첫 번째 출력 배열에서 인덱스 "a"가 있는 값 1은 두 번째 배열에서 인덱스 "a"가 있는 Dee 값으로 인덱싱됩니다.

방법 ③


코드 복사 코드는 다음과 같습니다.

함수 정렬($arr1,$arr2){

$arr_new = $arr1;
 
foreach($arr2 as $key=>$val){
 
                $arr_new[] = $val;
}

$arr_new 반환
}

$arr1 = array("a"=>1,"b"=>2,3);
$arr2 = array("a"=>디,"c"=>3,5);

에코 "

";<br>
print_r(arrsort($arr1,$arr2));<br>
echo "
";

출력:

코드 복사 코드는 다음과 같습니다.

배열
(
[a] => 1
[b] =>2
[0] =>3
[1] =>디
[2] =>3
[3] =>5
)

인덱스 배열이고 중복 인덱스가 있는 경우 두 번째 배열의 중복 인덱스가 새 인덱스로 수정됩니다.

8. 배열 역순(rsort 기능 사용 불가, 새로운 배열 생성 불가)

array_reverse() 함수를 사용하면 새로운 배열이 생성되므로 사용할 수 없습니다.

코드 복사 코드는 다음과 같습니다.

$arr = array("a","b","c",1,10);
$i = "";//대체할 숫자의 첨자
$j = "";//임시변수
$k = "";//대체할 숫자의 첨자

$len = 개수($arr);
$half_len = Floor($len/2);//내림하면 반올림된 값은 루프 수입니다

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

$j = $arr[$i];
 
//배열의 홀수 또는 짝수 판단
If($len%2!=0){ //홀수
 
          $k = $half_len*2-$i;
}그밖에{
                             
           //짝수
          $k = $half_len*2-$i-1;
}

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

에코 "

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


출력:
코드 복사 코드는 다음과 같습니다.

배열
(
[0] =>10
[1] =>1
[2] => ㄷ
[3] =>b
[4] =>
)
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.