PHP中常用函数总结

php中的函数挺多的,功能也挺强大的,如果想不到,自己写起来,一是费事,二是效率肯定不如php内置的函数高,所以总结一下,以后用到了可以查看。

一、关于键、值处理

1.array_values($array)
函数返回一个包含给定数组中所有键值的数组,但不保留键名。
2.array_keys($array)
函数返回包含数组中所有键名的一个新数组。
3.array_change_key_case($array[,CASE_UPPER/CASE_LOWER])
返回值是将函数将数组的所有的键都转换为大写字母或小写字母,而原数组不会发生变化。如果在运行该函数时两个或多个键相同,则最后的元素会覆盖其他元素。
4.array_column($array,"column_key"[,"index_key"])
如果是这种格式array_column($array,"column_key"),返回输入的多维数组中某个单一列的值,键值是自增的形式。
如果array_column($array,"column_key","index_key"),返回index_key列的值作为键,column_key列的值作为值的数组。如果index_key列的值作为键有重复的,后面的将会把前面的覆盖。
5.in_array(search,$array[,type])
函数搜索数组中是否存在指定的值。type可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
6.array_search(value,$array[,strict])
函数在一维数组中搜索某个键值,并返回对应的键名,没找到则返回false。如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。
7.array_key_exists(key,$array)
函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
8.array_flip($array)
函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
如果原数组中的值的数据类型不是字符串或整数,函数将报错。
9.array_reverse($array[,preserve])
函数将原数组中的元素顺序翻转,创建新的数组并返回。对于索引数组,如果第二个参数指定为 true,则元素的键名保持不变,否则键名将丢失。

二、全值统计

1.array_sum($array)
函数返回数组中所有值的和。如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
2.array_product($array)
函数计算并返回数组的乘积。
3.count($array[,mode])/sezeof($array[,model]);
函数计算数组中的单元数目或对象中的属性个数。model,0 - 默认。不对多维数组中的所有元素进行计数;1 - 递归地计数数组中元素的数目(计算多维数组中的所有元素)
4.array_count_values($array)
函数用于统计数组中所有值出现的次数。此函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

三、切删处理

1.array_chunk($array,size[,preserve_key])
函数把数组分割为新的数组块。其中每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。可选参数 preserve_key 是一个布尔值,它指定新数组的元素是否有和原数组相同的键(用于关联数组),还是从 0 开始的新数字键(用于索引数组)。默认false是分配新的键。
2.array_slice(array,start[,length][,preserve])
函数在数组中根据条件取出一段值,并返回。关于length,规定被返回数组的长度,如果该值设置为整数,则返回该数量的元素;如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出;如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。preserve,可选,true - 保留键名;false - 默认,重置键名。
3.array_splice($array,start[,length][,$array])
函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。start,必须有的参数,规定删除元素的开始位置,0代表第一个元素,如果该值设置为正数,则从数组中该值指定的偏移量开始移除,如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。length,可选,规定被移除的元素个数,也是被返回数组的长度;如果该值设置为正数,则移除该数量的元素;如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素;如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。最后一个数组,可选,规定带有要插入原始数组中元素的数组,如果只有一个元素,则可以设置为字符串,不需要设置为数组。
4.array_unique($array)
函数移除数组中的重复的值,并返回结果数组。当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。返回的数组中键名不变。

四、填充处理

1.array_pad($array,size,value)
函数将指定数量的带有指定值的元素插入到数组中。如果您将 size 参数设置为负数,该函数会在原始数组之前插入新的元素。
2.array_fill(index,number,value)
用键值填充数组,函数用给定的值填充数组,返回的数组有 number 个元素,值为 value。返回的数组使用数字索引,从 index 位置开始并递增。
3.array_fill_keys($keys,value)
使用指定的键和值填充数组。$keys使用该数组的值作为键。非法值将被转换为字符串。value填充数组所使用的值。

五、集合运算

1.array_diff($array1,$array2,$array3...)
函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中($array1),但是不在任何其他参数数组中($array2,$array3...)的键值。在返回的数组中,键名保持不变。
2.array_diff_key(array1,array2,array3...)
返回数组,该数组包含所有在 array1 中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名。
3.array_diff_assoc($array1,$array2[,$array3...])
比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
4.array_diff_ukey($array1,$array2[,$array3...],myfunction)
该函数比较两个(或更多个)数组的键名,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名。myfunction可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。例如:
function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"black","b"=>"yellow","d"=>"brown");
$a3=array("e"=>"purple","f"=>"white","a"=>"gold");

$result=array_diff_ukey($a1,$a2,$a3,"myfunction");
print_r($result);
5.array_diff_uassoc(array1,array2[,array3...],myfunction)
该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。myfunction定义可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。
6.array_intersect(array1,array2[,array3...])
该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。
7.array_intersect_key(array1,array2[,array3...])
该函数比较两个(或更多个)数组的键名,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名。
8.array_intersect_assoc(array1,array2[,array3...])
该函数比较两个(或更多个)数组的键名和键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
9.array_intersect_ukey(array1,array2[,array3...],myfunction)
返回一个数组,该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。
此比较是通过用户提供的回调函数来进行的。该函数带有两个参数,即两个要进行对比的键名。如果第一个参数小于第二个参数,则函数要返回一个负数,如果两个参数相等,则要返回 0,如果第一个参数大于第二个参数,则返回一个正数。
10.array_intersect_uassoc(array1,array2[,array3...],myfunction)
该函数比较两个(或更多个)数组的键名和键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
11.array_merge(array1[,array2][,array3...])
函数把一个或多个数组合并为一个数组。需要注意的是,如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
12.array_merge_recursive(array1[,array2][,array3...])
函数把一个或多个数组合并为一个数组。该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

六、数据结构处理

1.array_push(array,value1[,value2...])
函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
2.array_pop(array)
函数删除数组中的最后一个元素,并返回被删除元素的值。
3.array_shift(array)
函数删除数组中第一个元素,并返回被删除元素的值。
4.array_unshift(array,value1[,value2][,value3...])
函数用于向数组插入新元素。新数组的值将被插入到数组的开头。注意:数值键名将从 0 开始,以 1 递增。字符串键名将保持不变。
以上函数可以模拟栈、队列等结构。

七、排序函数

1.sort(array[,sortingtype])
函数对索引数组进行升序排序。注意,原有的键名将被删除。sortingtype的类型比较多,
0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
1 = SORT_NUMERIC - 把每一项作为数字来处理。2 = SORT_STRING - 把每一项作为字符串来处理。
3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
2.rsort(array[,sortingtype])
对索引数组进行降序排序。sortingtype类型和上边一样。
3.asort(array[,sortingtype])
函数对关联数组按照键值进行升序排序。sortingtype类型和上边一样。
4.arsort(array[,sortingtype])
函数对关联数组按照键值进行降序排序。sortingtype类型和上边一样。
5.ksort(array[,sortingtype])
函数对关联数组按照键名进行升序排序。sortingtype类型和上边一样。
6.krsort(array[,sortingtype])
函数对关联数组按照键名进行降序排序。sortingtype类型和上边一样。

八、使用回调函数

1.array_reduce(array,myfunction[,initial])
函数用回调函数迭代地将数组简化为单一的值。如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。
2.array_map(myfunction,array1[,array2][,array3...])
函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
3.array_filter(array,callbackfunction)
函数用回调函数过滤数组中的值。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

九、其他函数

1.range(low,high[,step])
该函数创建一个数组,包含从 low 到 high (包含 low 和 high)之间的整数或字符。如果 high 比 low 小,则返回反序的数组。step,可选,默认为1。
2.array_rand(array[,number])
函数从数组中随机选出一个或多个元素,并返回。二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
3.shuffle(array)
函数把数组中的元素按随机顺序重新排列。注意,该函数为数组中的元素分配新的键名,已有键名将被删除。
4.array_combine(keys,values)
函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。键名数组和键值数组的元素个数必须相同!
5.implode([separator,]array)
函数返回由数组元素组合成的字符串。separator可选,规定数组元素之间放置的内容。默认是 ""(空字符串)。
同join()的用法一样。
6.explode(separator,string[,limit])
函数把字符串打散为数组。limit可选,规定所返回的数组元素的数目。
limit,可选
大于 0 - 返回包含最多 limit 个元素的数组
小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
0 - 返回包含一个元素的数组

十、数学函数

1.abs(x)
求绝对值
2.ceil(x)
ceil中文是天花板的意思,函数向上舍入为最接近的整数。注意负数,如ceil(-5.9),值为-5.
3.floor(x)
floor中文的意思地板,函数向下舍入为最接近的整数。负数,如floor(-5.1),值为-6.
4.fmod(x,y)
返回被除数(x)除以除数(y)所得的浮点数余数。余数(r)的定义是:x = i * y + r,其中 i 是整数。如果 y 是非零值,则 r 和 x 的符号相同并且其数量值小于 y 。
5.pow(x,y)
返回 x 的 y 次方的幂。
6.round(x,prec)
函数对浮点数进行四舍五入。prec可选,规定小数点后的位数。
7.sqrt(x)
返回 x 的平方根。
8.max(x,y)
返回参数中数值最大的值。如果仅有一个参数且为数组,max() 返回该数组中最大的值。
9.min(x,y)
求最小的值。

十一、关于字符串

1.trim(string,charlist)
函数移除字符串两侧的空白字符或其他预定义字符。
ltrim(string,charlist)删除字符串左侧的空白字符串或者其他预定义字符。
rtrim(string,charlist)删除字符串右边的空白字符串或者其他预定义字符。
2.str_pad(string,length[,pad_string][,pad_type])
函数把字符串填充为新的长度。length必需,规定新的字符串长度,如果该值小于字符串的原始长度,则不进行任何操作。
pad_string可选,规定供填充使用的字符串,默认是空白。
pad_type,可选,规定填充字符串的哪边。
可能的值:
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认。
3.str_repeat(string,repeat)
函数把字符串重复指定的次数。
4.str_split(string[,length])
length可选,规定每个数组元素的长度。默认是 1。
5.strrev(string)
函数反转字符串。
6.wordwrap(string[,width][,break][,cut])
cut可选,规定是否对大于指定宽度的单词进行折行:
FALSE - 默认。No-wrap
TRUE - 折行
7.str_shuffle(string)
函数随机打乱字符串中的所有字符。
8.strtolower(string)将字符串转变成小写的。
lcfirst(string)将字符串首字母转变成小写。
9.strtoupper(string)将字符串转变成大写。
ucfirst(string)将字符串首字母转变成大写。
ucwords()把字符串中每个单词的首字符转换为大写。

猜你喜欢

转载自blog.csdn.net/u013252047/article/details/79101252