php自定义函数及内部函数----数组处理函数
Posted 小林子奋斗的点滴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php自定义函数及内部函数----数组处理函数相关的知识,希望对你有一定的参考价值。
一、增加元素
(1)array_push() : 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
注释:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。
注释:如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组。
$a=array("a"=>"xiao","b"=>"lin"); array_push($a,"hello","world"); print_r($a); //Array ( [a] => xiao [b] => lin [0] => hello [1] => world )
或者这样做:
$a["a"] = "xiao"; $a["b"] = "lin"; $a[] = "hello"; $a[] = "world"; print_r($a); //Array ( [a] => xiao [b] => lin [0] => hello [1] => world )
(2)array_unshift() : 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。该函数会返回数组中元素的个数。
$a=array(0=>"xiao",1=>"lin"); array_unshift($a,"zi"); print_r($a);//Array ( [0] => zi [1] => xiao [2] => lin )
(3)array_pad() : 函数将指定数量的带有指定值的元素插入到数组中,知道数组的长度达到指定大小为止。
array_pad(array,size,value)
注释:如果 size 参数小于原始数组的长度,该函数不会删除任何元素。
注释:如果 size 参数设置为负数,该函数会在原始数组之前插入新的元素
$a=array("xiao","lin"); print_r(array_pad($a,5,"zi")); // Array ( [0] => xiao [1] => lin [2] => zi [3] => zi [4] => zi ) $a=array("xiao","lin"); print_r(array_pad($a,-5,"zi")); // Array ( [0] => zi [1] => zi [2] => zi [3] => xiao [4] => lin )
二、删除元素
(1)array_pop() : 函数删除数组中的最后一个元素。
(2)array_shift(): 函数删除数组中第一个元素,并返回被删除元素的值。
注释:如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增。
$a=array(0=>"xiao",1=>"lin",2=>"zi"); echo array_shift($a);// xiao print_r ($a);//Array ( [0] => lin [1] => zi )
三、定位元素
(1)array_keys() :函数返回包含数组中所有键名的一个新数组。
(2)array_values() :函数返回一个包含给定数组中所有键值的数组,但不保留键名,被返回的数组将使用数值键,从 0 开始并以 1 递增。
$a=array("山东"=>"济南","陕西"=>"西安","河南"=>"郑州"); print_r(array_keys($a)); // Array ( [0] => 山东 [1] => 陕西 [2] => 河南 ) print_r(array_values($a));// Array ( [0] => 济南 [1] => 西安 [2] => 郑州 )
(3)in_array() :函数搜索数组中是否存在指定的值。
in_array(search,array,type)
注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。
如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。
如果没有在数组中找到参数,函数返回 false。
(4)array_search() :函数在数组中搜索某个键值,并返回对应的键名。
四、提取元素
(1)array_diff():函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。在返回的数组中,键名保持不变。
$a1=array("a"=>"xiao","b"=>"lin","c"=>"zi","d"=>"happy"); $a2=array("e"=>"xiao","f"=>"lin","g"=>"happy"); $a3=array("a"=>"xiao","b"=>"lin","h"=>"haha"); $result=array_diff($a1,$a2,$a3); print_r($result);
(2)array_intersect() :函数用于比较两个(或更多个)数组的键值,并返回交集。
array_intersect(array1,array2,array3...);
该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。
注意:只有第一个数组是被比较的数组。返回的也是它的键和值。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); $result=array_intersect($a1,$a2,$a3); print_r($result); // Array ( [a] => red )
五、数组排序
(1)sort() :函数对索引数组进行升序排序。
注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。
(2)rsort(): 函数对数值数组进行降序排序。
六、其他操作
(1)array_rand() :函数从数组中随机选出一个或多个元素,并返回。
array_rand(array,number)
第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
$a=array("a"=>"xiao","b"=>"lin","c"=>"zi"); print_r(array_rand($a,1)); // b print_r(array_rand($a,2)); // Array ( [0] => a [1] => c )
(2)array_merge():函数把一个或多个数组合并为一个数组。
注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
注释:如果仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。
$a1=array("a"=>"xiao","b"=>"lin"); $a2=array("c"=>"zi","b"=>"happy"); print_r(array_merge($a1,$a2)); // Array ( [a] => xiao [b] => happy [c] => zi )
(3)array_merge_recursive() :函数把一个或多个数组合并为一个数组。
该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
$a1=array("a"=>"xiao","b"=>"lin"); $a2=array("c"=>"zi","b"=>"happy"); print_r(array_merge_recursive($a1,$a2)); // Array ( [a] => xiao [b] => Array ( [0] => lin [1] => happy ) [c] => zi )
以上是关于php自定义函数及内部函数----数组处理函数的主要内容,如果未能解决你的问题,请参考以下文章