PHP内置函数复习

1.数组函数

  • array_rand();随机取出数组中一个或对个单元【第二参数默认是1,可以改变】
  • count();得到数组元素的个数。【如果参数不是数组,将会返回0】
  • in_array(【待搜索的值】,【待搜索的数组】,【默认为false】);【检测数组中是否存在某个值,第三参数默认是false,宽松比较】
  • array_shift();【从数组的开头移出一个元素,返回移位的值,如果array为空或不是数组,则返回NULL。】
$arr = ['a','b','c','d'];
print array_shift($arr);
//输出
a
  • implode(【以什么分割】,【待分割的字符串】);【分割字符串,返回数组】
  • array_merge(【数组1】,【数组2】,【…】);【合并数组】
  • array_pop(【数组】);【从数组末尾弹出元素】
  • array_push(【要追加的数组】,【追加的元素】);【将一个或多个元素追加到数组末尾】
  • array_unshift();【将一个或多个元素追加到数组开头】
  • array_keys();【函数返回包含数组中所有键名的一个新数组】
  • array_value();【返回数组中所有的值】
  • array_unique();【删除数组中重复的值】
  • asort();【对关联数组键值进行升序排序】
  • arsort();【对关联数组键值进行降序排序】
  • ksort();【对关联数组按照键名升序排序】
  • krsort();【对关联数组按照键名降序排序】
  • list();【把数组中的值赋值给一些数组变量】

2.字符串函数

  • substr(【待截取的字符串】,【开始位置】,【截取长度】);【截取字符串】
  • strrchr();【查找字符串中最后一个字符,此函数返回字符串的部分,如果未找到针,则返回FALSE。】
$str = '1.php?d.com';
print strrchr($str,'.');

return .com

//返回字符串长度
strlen();

//把字符串打散为数组
$str = 'hello world lilili';
$arr = explode('',$str);

//返回一个由数组元素组合成的字符串。
$arr = ['hello','world','lili'];
$str = implode(',',$arr);

//join 函数implode别名

//移除字符串两边的字符
$str = ' hello ';
trim($str);
//移除字符串左侧的空白字符或其他字符
ltrim();
//移除字符串右侧的空白字符或其他字符
rtrim();

//返回字符串中第一个字符的 ASCII 值。
ord();

//替换字符串中的一些字符(大小写不敏感)
str_ireplace();

//替换字符串中的一些字符(大小写敏感)。
str_replace();

//随机地打乱字符串中的所有字符
str_shuffle();

//把字符串分割到数组中
str_split();

//查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)
strchr();

//返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。
stripos();

//查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
stristr();

//把字符串转换为小写字母。
strtolower();

//把字符串转换为大写字母。
strtoupper();

//把字符串中的首字符转换为大写
ucfirst();

//把字符串中每个单词的首字符转换为大写
ucwords();
  • strpos(【字符串】,【要寻找的字符串】,【结束的位置】);【找到字符串中第一次出现子字符串的位置】
  • -

3.数学相关函数

//返回一个数的绝对值
abs();
//返回一个数的平方根
sqrt();
//对浮点数进行四舍五入
round();
//返回随机整数
rand();
//更好的返回随机数
mt_rand();
//返回范围为 (0, 1) 的一个伪随机数
lcg_value();
//返回 x 的 y 次方。
pow();
//返回圆周率 PI 的值
pi();
//最大值
max();
//最小值
min();
//向下舍入为最接近的整数。
floor();
//向上舍入为最接近的整数。
ceil();
//除法
bcdiv(100,5,2);
return 20.00;
//乘法
bcmul(2,4,2);
return 8.00;
//加法
bcadd(2,4,3)
return 6.000;
//减法
bcsub(4,1,4);
return 3.0000;

4.时间相关函数

//打印前一天的时间
print date('Y-m-d H:i:s',strtotime('-1day');

//当前时间戳
time();

//格式化日期
date('Y-m-d H:i:s',time());

//将任何英文文本日期时间描述解析为Unix时间戳
strtotime('2018-08-08');

//返回当前时间戳的微妙数
microtime();

//返回本地时间
localtime();

//返回对象DateTime的时区
date_timezone_get();

//设置对象DateTime的时区
data_timezone_set();

//返回两个日期之前的差值
date_diff();

//验证格力高日期
checkdate();

//返回一个新的Date Time 对象
date_create()

//返回根据指定格式进行格式化的日期
date_format();

5.简单函数

  1. 冒泡排序
function bubble ($arr)
{
    if (!is_array($arr)) {
        return '$arr不是一个数组';
        } else {
        $len = count($arr);
        if ($len <= 1) {
            return $arr;
        } else {
            $tmp = '';
            for ($i=0; $i < $len; $i++) {
                for ($j=0; $j < $len-$i-1; $j++) {
                    if ($arr[$j] > $arr[$j+1]) {
                        $tmp       = $arr[$j+1];
                        $arr[$j+1] = $arr[$j];
                        $arr[$j]   = $tmp;
                    }
                }
            }
            return $arr;
        }
    }
}

$arr = [1,15,2,14,13,69,10,58,894];

print_r(bubble($arr));

return Array ( [0] => 1 [1] => 2 [2] => 10 [3] => 13 [4] => 14 [5] => 15 [6] => 58 [7] => 69 [8] => 894 )
  1. 快速排序
function fastSort($arr)
{
    //判断是否是数组
    if (!is_array($arr)) {
        return '$arr不是一个数组';
    }
    //检查数组元素个数
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    //定义两个空数组
    $leftArr = $rightArr = [];
    //使用for循环,遍历,拿第一个与其比较
    for ($i < 0; $i < $len; $i++) {
        if ($arr[$i] < $arr[0]) {
            //小的放在左边
            $leftArr[] = $arr[$i];
        } else {
            //大的放在右边
            $rightArr[] = $arr[$i];
        }
    }
    //递归调用
    $leftArr = fastSort($leftArr);
    $rightArr = fastSort($rightArr);
    //合并
    return array_merge($leftArr,$arr[0],$rightArr);
}
$arr = [1,15,2,14,13,69,10,58,894];

print_r(bubble($arr));

return Array ( [0] => 1 [1] => 2 [2] => 10 [3] => 13 [4] => 14 [5] => 15 [6] => 58 [7] => 69 [8] => 894 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值