<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP數組面試考題

    時間:2025-04-10 14:05:41 php語言 我要投稿
    • 相關推薦

    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數組面試題「最新」08-01

    PHP數組的排序03-08

    8個PHP數組面試題05-22

    PHP一般數組與對象數組12-11

    PHP數組基本介紹02-28

    PHP數組函數知識05-09

    八個PHP數組面試題目08-15

    PHP中數組的分組排序07-26

    PHP數組長度的技巧05-20

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人