数组常用函数

    函数名称 描述 用法 return
    array_key_exists
    检查数组里是否有指定的键名 $arr = [“a”=>”red”,’b’=>’blue’];
    array_key_exists(‘a’,$arr)
    bool
    array_search(val,$arr) 搜索键值,并返回它的键名
    不存在则返回 bool(false)
    $arr = [“a”=>”red”,’b’=>’blue’];
    array_search(‘blue’,$arr)
    b
    is_array(val,$arr) 给定的值是否在数组中 $ar = [‘a’,’b’,’v’];
    is_array(‘a’,$arr)
    bool
    array_flip
    键值反转
    交换数组中键和值的位置,若重复前面的会被后面的覆盖
    $a1=array(“a”=>”red”,”b”=>”green”,”c”=>”blue”,”d”=>”red”)
    array_flip($a1)
    Array ( [red] => d [green] => b [blue] => c )
    同键名会覆盖 所以a被覆盖了
    shuffle
    [ˈʃʌfl]
    打乱数组 $arr = [1,2,3,4,5,6];
    shuffle($arr)
    array
    array_merge
    [mɜːdʒ]
    合并数组 $arr1 = [1];$arr2=[2];
    array_merge($arr1,$arr2)
    [1,2]
    implod 数组转字符串 $arr = [1,2,3,4,5]
    implode(‘,’$arr)
    ‘1,2,3,4,5’
    array_unique
    [juˈniːk]
    移除数组中重复的值
    $arr = [1,1,2,3,3,4,4];
    array_unique($arr)
    Array ( [0] => 1 [2] => 2 [3] => 3 [5] => 4 )
    数组中重复的1被删除了 只留下了一个 键名会保留当前
    array_keys 取出数组中键
    array_values 取出数组中值
    array_key_first 得到数组的第一个键名
    array_key_last 得到数组最后一个键名
    array_shift 删除数组中的第一个元素,并返回被删除的元素 $arr = [1,2,3,4,5]
    array_shift($arr)
    1
    array_unshift 在数组头部插入一个或多个单元 $arr=[‘red’,’green’];
    array_unshift($arr,’blue’);
    print_r(array_unshift($a,’blue’));
    print_r($a);
    3
    Array ( [0] => blue [1] => red [2] => green )
    array_push($arr,$str) 追加参数到数组末尾
    $str 数组or字符串
    $arr = [1,2]
    array($arr,’k’,’t’)
    [1,2,’k’,’t’]
    也可以追加数组
    array_pop 取出数组中最后一个值 $arr = [1,2,3,4,5.6]
    array_pop($arr)
    [1,2,3,4,5]
    count($arr) 统计数组 默认为0 count($arr)
    array_count_values 统计键值次数 $a = [‘q’,’w’,’q’];
    array_count_values($a)
    Array ( [q] => 2 [w] => 1 )
    array_sum 计算数组的所有键值的和 $arr = [1,2,3,4,5]
    array_sum($arr)
    15
    array_splice($arr1,start,length,$arr2) 从数组中移除元素,并用新元素取代它
    statr截取位置,
    lenght截取长度【选填】
    $arr 插入数据【选填
    $arr = [1,2,3,4]; $a = [‘q’,’w’];
    array_splice($arr,0,2,$a);
    print_r($arr);
    array_splice($arr,1,1,$a);
    Array ( [0] => q [1] => w [2] => 3 [3] => 4 )
    Array ( [0] => 1 [1] => q [2] => w [3] => 3 [4] => 4 )
    sort 数组升序 $arr = [1,3,5,4,2]
    sort($arr)
    $str = [‘c’,’a’,’b’];
    [1,2,3,4,5]
    [‘a’,’b’,’c’]
    asort 数组降序 $arr = [1,2,4,3,8,7];
    arsort( $arr ); print_r( $arr );
    Array ( [4] => 8 [5] => 7 [2] => 4 [3] => 3 [1] => 2 [0] => 1 )
    与sort区别是 键名不改变
    rsort 数组倒序 $arr = [1,3,5,4,2]
    sort($arr)
    [5,4,3,2,1]
    array_chunk($arr,lenght) 切割数组块
    lenght 每个数组块元素的个数)
    $arr = [1,2,3]
    array_chunk($arr,2)
    Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] =>Array ( [0] => 3 ) )
    array_change_key_case 改变键名大小写
    CASE_UPPER 大写
    CASE_LOWER 小写 默认
    $arr = [‘time’=>2022-02-02]
    array_change_key_case($arr,CASE_UPPER)
    [‘TIME’=>2022-02-02]
    可以结合键值互换 配合使用 array_flip
    array_rand($arr,$num) 数组随机数
    num 数组个数
    $arr = [1,2,3,4,5,6]
    array_rand($arr,2)
    [2,5]
    array_prduct 计算数组乘积 $arr = [2,3]
    array_product($arr)
    6
    array_reverse 数组倒叙 $arr = [1,2,3,4,5];
    array_reverse($arr)
    Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
    array_combine($key,$val) 用一个数组的值作为其键名,另一个数组的值作为其值 $arr = [1,2,3]; $a = [‘q’,’w’,’a’];
    array_combine($a,$arr)
    Array ( [q] => 1 [w] => 2 [a] => 3 )
    array_fill_keys 用给定的指定键名的键值填充数组 $keys=[‘a’,’b’,’c’];
    array_fill_keys($keys,”blue”)
    Array ( [a] => blue [b] => blue [c] => blue )
    array_fill(start,lenght,$str) 用给定的键值填充数组
    start 开始键名
    lenght 数组长度
    array_fill(2,4,”blue”) Array ( [2] => blue [3] => blue [4] => blue [5] => blue )
    array_pad($arr,lenght,$str) 将指定数量的带有指定值的元素插入到数组中
    $arr = [1,2,3];
    array_pad($arr,4,’qps’)
    Array ( [0] => 1 [1] => 2 [2] => 3 [3] => qps [4] => qps )
    array_slice($arr,lenght) 返回数组中的选定部分
    剔除选中的lenght长度,返回数组
    $arr = [1,2,3,4,5];
    array_slice($arr,2)
    Array ( [0] => 3 [1] => 4 [2] => 5 )
    compact 创建一个包含变量名和它们的值的数组 $firstname = “Peter”;
    $lastname = “Griffin”;
    $age = “41”;
    compact(“firstname”, “lastname”, “age”);
    Array ( [firstname] => Peter [lastname] => Griffin [age] => 41 )
    extract 数组键名作为变量名 $data = [‘name’ => ‘pqs’,’age’ => 12];
    extract($data);
    print_r($name);
    qps
    range(starat,lenght,step) 创建一个包含指定范围的元素的数组
    step 数组的倍数 可选
    range(1,5);
    range(0,14,3)
    Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
    Array ( [0] => 0 [1] => 3 [2] => 6 [3] => 9 [4] => 12 )
    array_diff 比较键值,返回差集 $num = [1,2,3,4,5,’qps’];
    $num1 = [1,2,3,4];
    array_diff($num,$num1)
    Array ( [4] => 5 [5] => qps )
    array_udiff 用回调函数比较数据来计算数组的差集
    array_diff_key 键名比较计算数组的差集 $a1=array(“a”=>1,”b”=>2,”c”=>3);
    $a2=array(“a”=>4,”c”=>5,”d”=>6);
    array_diff_key($a1,$a2);
    Array ( [b] => 2 )
    array_diff_assoc $a1=array(“a”=>1,”b”=>2,”c”=>3);
    $a2=array(“a”=>1,”c”=>5,”d”=>6);
    $result=array_diff_assoc($a1,$a2);
    array_intersect 比较两个数组或多个的值,并返回交集 $arr = [1,2,3,4];$a = [1,2,’q’,’w’];

    字符串常用函数

    函数名称 描述 用法 return
    strtolower 字符串全部转小写 $str = ‘HELLO WORD’
    strtolower($str)
    hello word
    strtoupper
    字符串全部转大写 $str = ‘Hello WORLD!’
    strtoupper($str”)
    Hello WORLD!
    explode 字符串转数组 $str = ‘1,2,3,4,5’;
    explode(‘,’,$str)
    explode(‘,’,$str,3)
    [1,2,3,4,5]
    Array ( [0] => 1 [1] => 2 [2] => 3,4,5 )
    str_split 字符串切割成数组
    不填默认唯一
    $str = ‘1,2,3,4,5,6’;
    str_split($str)
    str_split($str,3)
    [1,2,3,4,5,6]
    Array ( [0] => 123 [1] => 456 )
    strlen 统计字符串长度 $str = ‘hello word’;
    stelen($str)
    10
    substr(str,start,len) 字符串截取长度
    start 开始位置
    len 截取个数
    $str = ‘hello word’;
    subltr($str,4)
    substr($str,4,5)
    substr($str,1,-2)
    o word
    o wor
    ello wor
    strrev 反转字符串 $str = ‘hello word!’;
    strrev($str)
    !drow olleh
    strpos(str,find,start) 查找字符串在另一字符串中第一次出现的位置
    start 开始位置
    未找到返回false 对大小写敏感
    $str = ‘hello word!’; $str1 = ‘rd’;
    strpos($str,$str1)
    strpos($str,$str1,8)
    8
    false
    strchr(str,search,before_search) 搜索字符串在另一字符串中的第一次出现 $str = ‘hello word!’; $str1 = ‘rd’;
    strchr($str,$str1)
    strchr($str,$str1,true)
    rd!
    hello wo
    strrchr(string,char) 查找字符串在另一个字符串中最后一次出现的位置 $str = ‘hello word!!!’; $str1 = ‘rd’;
    strrchr($str,$str1)
    rd!!!
    trim(str,char) 移除字符串两侧的空白字符或其他预定义字符
    ltrim 移除左侧空白字符
    rltrim 移除右侧空白字符
    str_replace(find,replace,str,count) 替换字符串中的一些字符
    find 规定要查找的值
    replace 规定替换 find 中的值的值
    count 可选。一个变量,对替换数进行计数
    str_repeat 把字符串重复指定的次数 str_repeat(“.”,13); ………….
    addclsashes 指定的字符前添加反斜杠的字符串 addcslashes(“Hello World!”,”W”) Hello \World!

    数字操作函数

    函数名称 描述 用法 return
    floor 舍去小数 floor(4,23) 4
    abs 绝对值 abs(-1,23) 1.23

    判断空函数

    函数名称 使用 区别
    empty
    is_null
    != ‘’

    其他函数

    函数名称 描述 使用 return
    gettimeofday 返回当前时间 gettimeofday()
    gettimeofday(true)
    array ( [sec] => 1645756911 [usec] => 405241 [minuteswest] => 0 [dsttime] => 0 )
    1645757087.4183
    mt_
    mt_rand(mix,max) 随机数生成器
    效率是rand的4倍
    mt_rand(1,1000)
    mt_rand()
    345
    437835361
    rand(mix,max) 生成随机整数 rand(1,1000)
    rand()
    641
    2109495923
    htmlentities 把字符转换为 HTML 实体
    htmlspecialchars 转义
    memory_get_usage 返回分配给 PHP 的内存量
    yield
    [jiːld]
    生成器

    判断未空

    1. class test{ }
    2. $arr = [];
    3. $b = false;
    4. $str = '';
    5. $c = new test;
    6. $null = null;
    7. $num = 0;
    8. //未定义数据 $k
    9. //empty 判断变量是否为 空 与 == 相同
    10. [] => bool(true)
    11. false => bool(true)
    12. '' => bool(true)
    13. new test => bool(false) //空对象未假
    14. null => bool(true)
    15. 0 => bool(true)
    16. $k => bool(true)
    17. //is_null 检测变量是否为 null
    18. [] => bool(false)
    19. false => bool(false)
    20. '' => bool(false)
    21. new test => bool(false)
    22. null => bool(true)
    23. 0 => bool(false)
    24. $k => bool(true)

    区别 require、include、require_once 、include_once

    require 和 include 几乎完全一样,除了处理失败的方式不同之外。
    require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止
    include 只产生警告(E_WARNING),脚本会继续运行

    include_once 语句在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次

    对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
    SQL 语句较为复杂时,ORM 语法可读性不高(使用原生 SQL)

    Zend执行引擎

    抛出异常
    try {
    intdiv(5, 0);
    } catch (\DivisionByZeroError $e) {
    echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
    }
    多个异常抛出
    try {
    throw new LengthException(“LengthException”);
    // throw new DivisionByZeroError(“DivisionByZeroError”);
    // throw new Exception(“Exception”);
    } catch (\DivisionByZeroError | \LengthException $e) {
    echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
    } catch (\Exception $e) {
    echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
    } finally {
    // …
    }