【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函数,用方法写一个反转字符串的函数。_第1张图片


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函数,用方法写一个反转字符串的函数。_第2张图片

你可能感兴趣的:(PHP面试题,算法与逻辑思维)