天天看點

【PHP面試題】不使用PHP函數,用方法寫一個反轉字元串的函數。一、考點二、解題方法三、真題

文章目錄

  • 一、考點
  • 二、解題方法
  • 三、真題
      • 1、不使用PHP函數,用方法寫一個反轉字元串的函數。
      • 2、寫一個函數,要求不使用 array_merge 完成多個數組的合并。

一、考點

1、邏輯思維能力

2、對PHP内置函數的熟悉程度

3、字元串和數組的處理能力

二、解題方法

此類考點分為兩類:

1、一類是直接說明讓大家實作神呢沒有的操作;

2、一類是讓大家實作某種函數的功能。

是以,不僅需要大家具備一定的資料處理能力,還要熟悉 PHP内置函數的功能 是什麼,常見的處理主要是對字元串和數組的處理,是以建議大家多學習PHP字元串和數組的内置函數,嘗試模拟其功能,有助于提升邏輯思維和熟悉函數功能。

三、真題

1、不使用PHP函數,用方法寫一個反轉字元串的函數。

// abcdefg -> gfedcba

// 将字元串看做數組來處理 [a,b,c,d,e,f,g]
function str_rev($str)
{
    for ($i = 0; true; $i++) {
        // 判斷字元串長度
        if (!isset($str[$i])) {
            break;
        }
    }
    $return = '';
    for ($j = $i-1; $j >= 0; $j--) {
        $return .= $str[$j];
    }
    return $return;
}

echo str_rev('abcdefg'); // 調用函數
           

運作結果:

【PHP面試題】不使用PHP函數,用方法寫一個反轉字元串的函數。一、考點二、解題方法三、真題

2、寫一個函數,要求不使用 array_merge 完成多個數組的合并。

/*
 * 多個數組的合并
 * array_mer($arr1, $arr2, $arr3, ..., $arrn)
 * 1、傳遞幾個數組;
 * 2、接收到所有的數組,周遊每一個參數(即每個參數都是一個數組,即周遊每個數組);
 * 3、取中間的一個添加進去即可
 */
function array_mer()
{
    $return = [];
    // 動态擷取傳遞進來的所有參數
    $arrays = func_get_args();
    // 周遊每一個參數(即數組)
    foreach ($arrays as $arr) {
        // 判斷是否為數組,如果是,則繼續循環
        if (is_array($arr)) {
            foreach ($arr as $val) {
                $return[] = $val;
            }
        }
    }
    
    return $return;
}
var_dump(array_mer([1], [2,3], [4,5]));
           

運作結果:

【PHP面試題】不使用PHP函數,用方法寫一個反轉字元串的函數。一、考點二、解題方法三、真題

繼續閱讀