zoukankan      html  css  js  c++  java
  • php中的常用函数

    先声明一下,copy来的,各位看官请勿吐槽,我是留给自己回顾和补充知识点用的。

    PHP数据类型包括8种

     
    相对应的判断函数有:
    is_bool(),is_int(),is_integer(),is_long()(同样是判断整型),is_real()(同样是判断浮点型),is_float(),is_string(),is_array(),is_object(),is_null()用来检测变量是否为 NULL
     
    其他常用函数

    array_values() 函数可以返回数组中所有的值并给其建立数字索引

    复制代码
    复制代码
    <?php
    $arr = [0,1,2,3];
    unset($arr[1]);
    $arr = array_values($arr);
    /*
    array (size=3)
      0 => int 0
      1 => int 2
      2 => int 3
     */
    var_dump($arr);
    ?>
    复制代码
    复制代码

    list()函数可以将数组中的值赋给变量

    复制代码
    复制代码
    list($a,$b,$c) = [1,2,3];
    echo $a;//1
    echo $b;//2
    echo $c;//3
    
    // 仅接收其中一个
    list(, , $power) = [1,2,3];
    echo $power;//3
    
    // list() 不能对字符串起作用
    list($bar) = "abcde";
    var_dump($bar); // NULL
    复制代码
    复制代码

    回调函数是指将一个函数的函数名作为参数传到另一个函数中

    复制代码
    复制代码
    function demo($num,$n){
        for($i=0;$i<$num;$i++){
            if($n($i)){
                echo $i.'<br>';
            }
        }
    }
    
    function test($i){
        if($i%5){
            return true;
        }
    }
    
    demo(20,'test');
     
    复制代码

    递归函数

    复制代码
    复制代码
    <?php
        function test( $n ) {            
            echo $n; 
            if($n>0){
                test($n-1);                   
            }   
            echo $n; 
        }
        test(5);//543210012345
    ?>
     
    复制代码

    键值操作

    array_values:array_values() 返回 input 数组中所有的值并给其建立数字索引(文档上面有介绍)

    array_keys:array_keys() 返回 input 数组中的数字或者字符串的键名

    array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )

    如果指定了可选参数 search_value,则只返回该值的键名。否则 input 数组中的所有键名都会被返回

    如果指定了可选参数 strict,表示判断在搜索的时候是否该使用严格的比较(===)

    复制代码
    复制代码
    <?php
    $array = array(0 => 100, "color" => "red");
    //Array ( [0] => 0 [1] => color ) 
    print_r(array_keys($array));
    
    $array = array("blue", "red", "green", "blue", "blue");
    // Array ( [0] => 0 [1] => 3 [2] => 4 ) 
    print_r(array_keys($array, "blue"));
    
    $array = array("color" => array("blue", "red", "green"),
                   "size"  => array("small", "medium", "large"));
    Array ( [0] => color [1] => size )
    print_r(array_keys($array));
    ?>
    复制代码
    复制代码

    in_array:in_array — 检查数组中是否存在某个值

    bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

    如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同

    复制代码
    复制代码
    <?php
    $os = array("Mac", "NT", "Irix", "Linux");
    if (in_array("Irix", $os)) {
        //Got Irix
        echo "Got Irix";
    }
    if (in_array("mac", $os)) {
        echo "Got mac";
    }
    ?>
    复制代码
    复制代码

    array_flip:array_flip — 交换数组中的键和值,成功时返回交换后的数组,如果失败返回 NULL

    array array_flip ( array $trans )

    array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名

    如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了

    [注意]trans中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转

    复制代码
    复制代码
    <?php
    $trans = array("a" => 1, "b" => 1, "c" => 2);
    $trans = array_flip($trans);
    //Array ( [1] => b [2] => c )
    print_r($trans);
    ?>
    复制代码
    复制代码

    array_reverse:array_reverse — 返回一个单元顺序相反的数组

    array array_reverse ( array $array [, bool $preserve_keys = false ] )

    如果参数preserve_keys设置为 TRUE 会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留

    array_count_values:array_count_values — 统计数组中所有的值出现的次数

    array array_count_values ( array $input )
    <?php
    $array = array(1, "hello", 1, "world", "hello");
    //Array ( [1] => 2 [hello] => 2 [world] => 1 )
    print_r(array_count_values($array));
    ?>

    array_unique:array_unique — 移除数组中重复的值

    array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

    [注意]键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留

    复制代码
    复制代码
    <?php
    $input = array("a" => "green", "red", "b" => "green", "blue", "red");
    $result = array_unique($input);
    //Array ( [a] => green [0] => red [1] => blue )
    print_r($result);
    ?>
    复制代码
    复制代码

    array_sum:array_sum — 计算数组中所有值的和,array_sum() 将数组中的所有值的和以整数或浮点数的结果返回

    复制代码
    复制代码
    <?php
    $a = array(2, 4, 6, 8);
    //sum(a) = 20
    echo "sum(a) = " . array_sum($a) . "
    ";
    $b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
    //sum(b) = 6.9
    echo "sum(b) = " . array_sum($b) . "
    ";
    ?>
    复制代码
    复制代码

    array_merge:array_merge — 合并一个或多个数组

    array_intersect:array_intersect — 计算数组的交集

    array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

     array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值

     [注意]键名保留不变

    复制代码
    复制代码
    <?php
    $array1 = array("a" => "green", "red", "blue");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_intersect($array1, $array2);
    //Array ( [a] => green [0] => red )
    print_r($result);
    ?>
    复制代码
    复制代码

    array_diff:array_diff — 计算数组的差集

    array array_diff ( array $array1 , array $array2 [, array $... ] )

    对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值

    复制代码
    复制代码
    <?php
    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_diff($array1, $array2);
    //Array ( [1] => blue )
    print_r($result);
    ?>
    复制代码
    复制代码

    array_fill:array_fill — 用给定的值填充数组,返回填充后的数组

    array array_fill ( int $start_index , int $num , mixed $value )

     array_fill() 用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始

    复制代码
    复制代码
    ?php
    $a = array_fill(5, 6, 'banana');
    $b = array_fill(-2, 4, 'pear');
    //Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana )
    print_r($a);
    //Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )
    print_r($b);
    ?>
     
    复制代码

    栈和队列

    array_pop:array_pop — 将数组最后一个单元弹出(出栈)

    mixed array_pop ( array &$array )

    array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL

    复制代码
    复制代码
    <?php
    $stack = array("orange", "banana", "apple", "raspberry");
    $fruit = array_pop($stack);
    //Array ( [0] => orange [1] => banana [2] => apple )
    print_r($stack);
    ?>
    复制代码
    复制代码

    array_push:array_push — 将一个或多个单元压入数组的末尾(入栈),返回处理之后数组的元素个数

    int array_push ( array &$array , mixed $var [, mixed $... ] )

    array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加

    复制代码
    复制代码
    <?php
    $stack = array("orange", "banana");
    array_push($stack, "apple", "raspberry");
    //Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )
    print_r($stack);
    ?>
    复制代码
    复制代码

    array_shift:array_shift — 将数组开头的单元移出数组

    mixed array_shift ( array &$array )

    array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变

    复制代码
    复制代码
    <?php
    $stack = array("orange", "banana", "apple", "raspberry");
    $fruit = array_shift($stack);
    //Array ( [0] => banana [1] => apple [2] => raspberry )
    print_r($stack);
    ?>
    复制代码
    复制代码

    array_unshift:array_unshift — 在数组开头插入一个或多个单元,返回 array 数组新的单元数目

    int array_unshift ( array &$array , mixed $var [, mixed $... ] )

      array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保     持不变

    复制代码
    复制代码
    <?php
    $queue = array("orange", "banana");
    array_unshift($queue, "apple", "raspberry");
    //Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )
    print_r($queue);
    ?>
     
    复制代码

    trim():该函数用于返回去掉字符串首尾空格的字符串

    ltrim():ltrim函数用于删除字符串开头的空白字符(或其他字符)

    rtrim():rtrim函数用于删除字符串末端的空白字符(或者其他字符)

    strtolower():strtolower — 将字符串转化为小写

    strtoupper():strtoupper — 将字符串转化为大写

    ucfirst():ucfirst — 将字符串的首字母转换为大写

    ucwords():ucwords — 将字符串中每个单词的首字母转换为大写

    htmlspecialchars():把指定特殊符号转换成实体

    addslashes():使用反斜线引用字符串,返回字符串

    stripslashes(): 反引用一个引用字符串

    strrev():strrev — 反转字符串

    string strrev ( string $string )
    <?php
    echo strrev("Hello world!"); // 输出 "!dlrow olleH"
    ?>

    strlen():strlen — 获取字符串长度

    md5():计算字符串的 MD5 散列值

    strstr():查找字符串的首次出现,返回haystack字符串从needle第一次出现的位置开始到haystack结尾的字符串

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

    before_needle若为TRUE,strstr()将返回needle在haystack中的位置之前的部分

    复制代码
    复制代码
    <?php
    $email  = 'name@example.com';
    $domain = strstr($email, '@');
    echo $domain; // @example.com
    
    $user = strstr($email, '@', true); 
    echo $user; //name
    ?>
    复制代码
    复制代码

    strpos():strpos()查找字符串首次出现的位置

    mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
    <?php
    // 忽视位置偏移量之前的字符进行查找
    $newstring = 'abcdef abcdef';
    $pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
    ?>

    strrpos():strrpos()计算指定字符串在目标字符串中最后一次出现的位置

    int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
    复制代码
    复制代码
    <?php
    $foo = "0123456789a123456789b123456789c";
    
    var_dump(strrpos($foo, '7', -5));  // 从尾部第 5 个位置开始查找
                                       // 结果: int(17)
    
    var_dump(strrpos($foo, '7', 20));  // 从第 20 个位置开始查找
                                       // 结果: int(27)
    
    var_dump(strrpos($foo, '7', 28));  // 结果: bool(false)
    ?>
     
    复制代码

    substr():substr()返回字符串的子串

    string substr ( string $string , int $start [, int $length ] )
    复制代码
    复制代码
    <?php
    $rest = substr("abcdef", -1);    // 返回 "f"
    $rest = substr("abcdef", -2);    // 返回 "ef"
    $rest = substr("abcdef", -3, 1); // 返回 "d"
    ?>
    
    <?php
    $rest = substr("abcdef", 0, -1);  // 返回 "abcde"
    $rest = substr("abcdef", 2, -1);  // 返回 "cde"
    $rest = substr("abcdef", 4, -4);  // 返回 ""
    $rest = substr("abcdef", -3, -1); // 返回 "de"
    ?>
    复制代码
    复制代码

    str_replace():str_replace()返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

     如果count被指定,它的值将被设置为替换发生的次数

    复制代码
    复制代码
    <?php
    // 赋值: <body text='black'>
    $bodytag = str_replace("%body%", "black", "<body text='%body%'>");
    
    // 赋值: Hll Wrld f PHP
    $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    $onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
    
    // 赋值: You should eat pizza, beer, and ice cream every day
    $phrase  = "You should eat fruits, vegetables, and fiber every day.";
    $healthy = array("fruits", "vegetables", "fiber");
    $yummy   = array("pizza", "beer", "ice cream");
    
    $newphrase = str_replace($healthy, $yummy, $phrase);
    
    // 赋值: 2
    $str = str_replace("ll", "", "good golly miss molly!", $count);
    echo $count;
    ?>
    复制代码
    复制代码

    分割:explode()

    explode()使用一个字符串分割另一个字符串,返回由字符串组成的数组,每个元素都是string的一个子串,它们被字符串delimiter作为边界点分割出来

    array explode ( string $delimiter , string $string [, int $limit ] )

    如果设置了limit参数并且是正数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分;如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素;如果limit是0,则会被当做1

    复制代码
    复制代码
    <?php
    // 示例 1
    $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces = explode(" ", $pizza);
    echo $pieces[0]; // piece1
    echo $pieces[1]; // piece2
    
    // 示例 2
    $data = "foo:*:1023:1000::/home/foo:/bin/sh";
    list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
    echo $user; // foo
    echo $pass; // *
    ?>
    复制代码
    复制代码

    implode():implode()将一个一维数组的值转化为字符串

    string implode ( string $glue , array $pieces )
    string implode ( array $pieces )
    复制代码
    复制代码
    <?php
    
    $array = array('lastname', 'email', 'phone');
    $comma_separated = implode(",", $array);
    
    echo $comma_separated; // lastname,email,phone
    
    // Empty string when using an empty array:
    var_dump(implode('hello', array())); // string(0) ""
    
    ?>
     
    复制代码
  • 相关阅读:
    TCP/IP 三次握手四次挥手
    光端机2m是什么意思,光端机E1与2M有什么区别?
    电视光端机故障维护与指示灯说明
    电视光端机常见故障问题介绍
    传输设备,光端机的应用及故障分析
    RS485数据光端机产品特点及技术参数介绍
    网管交换机与非网管交换机的优缺点介绍
    网管型交换机相比普通交换机有哪些明显优势?
    什么叫POE交换机?POE交换机使用方法详解!
    交换机用光纤模块互连一端灯不亮或两端都不亮,如何处理?
  • 原文地址:https://www.cnblogs.com/du892294464/p/6819111.html
Copyright © 2011-2022 走看看