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) . "\n";
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
//sum(b) = 6.9
echo "sum(b) = " . array_sum($b) . "\n";
?>

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  = ‘[email protected]‘;
$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) ""

?>

时间: 2024-08-28 07:30:10

php中的常用函数的相关文章

socket编程之三:socket网络编程中的常用函数

这节本来打算先给出常用函数介绍,再给两个代码实例,写着写着发现越来越长,决定把代码放在下一节. 本节内容持续更新...... 1 socket()函数 原型: int socket(int domain, int type, int protocol); 描述: 类似打开一个文件,返回一个socket描述符,唯一标识一个socket,后面相应的操作都是这用这个socket描述符. 参数: domain:协议族,常用的协议族有AF_INET.AF_INET6.AF_LOCAL.AF_ROUTE等:

头文件algorithm中的常用函数

头文件algorithm中的常用函数 一.非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对

numpy函数库中一些常用函数的记录

numpy函数库中一些常用函数的记录 最近才开始接触python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素.虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可以得到不同的结果,其中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )函数可以将数组转

MATLAB中的常用函数

MATLAB中的常用函数 1. 特殊变量与常数 主题词 意义 主题词 意义 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 nargin 输入参数个数 nargout 输出参数的数目 pi 圆周率 nargoutchk 有效的输出参数数目 realmax 最大正浮点数 realmin 最小正浮点数 varargin   实际输入的参量 varargout 实际返回的参量     2.

oracle中的常用函数

oracle中的常用函数 1. 字符串常用函数 函数名 说明 concat 用来连接字符串的函数,只能连接两个字符串.如果想连接多个字符串可以使用"||"符号 initcap 把每个单词的首字母大写. instr(‘母字符串’,‘子字符串’) 母字符串:被查找的字符串.子字符串:要查找的字符串. 如果有第三个参数,代表从第几个字符开始查找. 第四个参数代表查询第几次出现的字符串的下标,默认是1. 查询不到返回0 select instr('410106199012132018','19

-- oracle 中的常用函数

select concat('nishi','shabi') from dual -- 链接两个字符串select 'ni'||'shi'||'shabi' from dual -- 链接多个字符串select initcap('ni shi shi bi') from dual -- 首字母大写select instr('ni shi shi bi','s',5) from dual -- 返回子字符串在母字符串中首次出现--的位置,下标从1开始.如果有第三个参数,代表从第几个字符开始查找.第

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

Makefile 中的常用函数

1.$(subset <from>,<to>,<text>) 名称:字符串替换 功能:把字符串<text>中得<from>字符串替换成<to> 返回值:返回被替换过后的字符串 示例: $(subst ee,EE,feet on the street) 把"feet on the street"中的"ee"替换成"EE",返回结果是"fEEt on the strEE

socket编程中客户端常用函数 以及简单实现

1 常用函数 1.1   connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客户端需要调用connect()连接服务器,connect和bind的参数形式一致,区别在于bind的参数是自己的地址,而connect的参数是对方的地址.connect()成功返回0,出错返回-1. 1.2   bind():很少用 由于客户端不需要固定的端口号,因此不必调用bind(),客户端的端