PHP数组中常用的函数:
1.//array_values — 返回数组中所有的值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_values($array); echo "<pre>"; print_r($tem); echo "</pre>";
输出结果如下: 2.array_keys — 返回数组中部分的或所有的键名
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_keys($array); echo "<pre>"; print_r($tem); echo "</pre>";
输出结果如下:
3.in_array — 检查数组中是否存在某个值,返回布尔类型(bool)的值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= in_array("10",$array,false); echo "<pre>"; print_r($tem); echo "</pre>";
其中第三个参数默认false,如果存在则返回1,不存在,则没有返回值。如若设置成true,则会检查类型是否相同,相当于“===” 的效果。 4.array_flip — 交换数组中的键和值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_flip($array); echo "<pre>"; print_r($tem); echo "</pre>";
输出结果如下:
这里需要注意$array 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会翻转。 如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。 5.array_reverse — 返回一个单元顺序相反的数组,例如:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= array_reverse($array); echo "<pre>"; print_r($tem); echo "</pre>";
如图所示:
注意,如果这里的第二个参数,设置为true,则会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留。例:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= array_reverse($array,true); echo "<pre>"; print_r($tem); echo "</pre>";
这里的第二个参数,设置为true,如下图所示:
6.count — 计算数组中的单元数目或对象中的属性个数,例如:
$array = array("zhangsan",5,"10","sex"=>"man"); $tem= count($array); echo "<pre>"; print_r($tem); echo "</pre>";
这里的$tem 就是数组的个数,个数为4; 7.array_count_values — 统计数组中所有的值出现的次数,例如:
$array = array("zhangsan",5,"10","sex"=>"man",5); $tem= count($array); echo "<pre>"; print_r($tem); echo "</pre>";
如下图所示:
8.array_unique — 移除数组中重复的值,接受 array
作为输入并返回没有重复值的新数组。 例如:
$array = array("zhangsan",5,"10","sex"=>"man",5); $tem=array_unique ($array); echo "<pre>"; print_r($tem); echo "</pre>";
如下图所示:
9.array_filter — 用回调函数过滤数组中的单元 ,例如:过滤下面数组中小于3的数组。
$array = array(1,2,3,4,5); //回调函数如下 function filter($val){ if($val>3){ return $val; } } //返回过滤后的数组。 $tem = array_filter($array,"filter"); echo "<pre>"; print_r($tem); echo "</pre>";
结果如下图所示:
10.array_walk — 使用用户自定义函数对数组中的每个元素做回调处理。成功时返回 TRUE
, 或者在失败时返回 FALSE
。
$array = array(1,2,3,4,5);
//回调函数如下 function walk($val){ $val=$val*$val; //没有返回值 } //使用自定义函数,让每个元素做回调处理 $tem = array_walk($array,"walk"); echo "<pre>"; print_r($tem); echo "</pre>";
11.array_map — 为数组的每个元素应用回调函数
$array = array(1,2,3,4,5);
//回调函数如下 function map($val){ $val=$val*$val; return $val;//有返回值 } //使用自定义函数,让每个元素做回调处理并组成一个新的数组 $tem = array_map("map",$array); echo "<pre>"; print_r($tem); echo "</pre>";
原来数组还存在,返回一个新的数组,返回结果如下图所示:
这里array_map与array_walk 的区别,array_walk 是使数组里的每个元素做回调处理,不返回值;array_map是使数组里的每个元素做回调处理,并返回一个新的数组。
12.sort — 对数组进行升序排序。sort() 例子
$array = array(10,2,13,4,50);//对数组进行升序排序$tem = sort($array);echo "<pre>";print_r($tem);//函数成功返回值echo "<br>";//遍历出排序后的数组foreach ($array as $key => $val) { echo "array [" . $key . "] = " . $val . "\n";} echo "</pre>";
成功时返回TRUE
, 或者在失败时返回FALSE
。 如下图所示:13.rsort — 对数组逆向排序(降序) rsort() 例子
$array = array(10,2,13,4,50); //对数组进行降序排序 $tem = rsort($array); echo "<pre>"; print_r($tem);//函数成功返回值 echo "<br>"; //遍历出排序后的数组 foreach ($array as $key => $val) { echo "array [" . $key . "] = " . $val . "\n"; } echo "</pre>";
成功时返回TRUE
, 或者在失败时返回FALSE
。 如下图所示: 其他排序方式如下图所示: 14.array_slice — 从数组中取出一段 。array_slice 例子:
$array = array(10,2,13,4,50,15);//截取索引为1开始截取长度为5的数组元素 $tem = array_slice($array,1,5); echo "<pre>"; print_r($tem); echo "</pre>";
如下图所示:
15.array_splice — 把数组中的一部分去掉并用其它值取代 。 array_splice 例子
$array = array(1,2,3,4,5);//截取索引为2开始去掉1个长度的数组元素并用元素6来降3取代,注意array_splice的参数不能超过四个,如要添加更多元素,需要建立一个新的数组,将需要添加的元素放进新数组,//再将新数组放入array_splice第四个参数即可
array_splice($array,2,1,6); echo "<pre>"; print_r($array); echo "</pre>";
结果如下图所示:
16.array_combine —(合并两个数组) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 。例子:
//数组1$array = array(1,2,3,4);//数组2 $array2 = array("zhangsan","lisi","wangwu","zhaoli");//合并数组 $tem =array_combine($array,$array2); echo "<pre>"; print_r($tem); echo "</pre>";
结果如下图:
17.array_merge — 合并一个或多个数组
//数组1 $array = array(1,2,3,4); //数组2 $array2 = array("zhangsan","lisi","wangwu","zhaoli"); //合并数组 $tem =array_merge($array,$array2); echo "<pre>"; print_r($tem); echo "</pre>";
结果如下图:
18.array_intersect — 计算数组的交集。例子:
//数组1 $array = array(1,2,3,4,5); //数组2 $array2 = array(3,4,5,6,7); //交集 $tem =array_intersect($array,$array2); echo "<pre>"; print_r($tem); echo "</pre>";
结果如下图:
19.array_diff — 计算数组的差集。
注意,返回的是第一个数组当中与第二个数组当中不同的数值,不会返回第二个数组中的值。
例子:
//数组1 $array = array(1,2,3,4,5); //数组2 $array2 = array(3,4,5,6,7); //交集 $tem =array_diff($array,$array2); echo "<pre>"; print_r($tem); echo "</pre>";
如图所示:
20.array_pop — 将数组最后一个单元弹出(出栈)。返回最后一个值,注意:
返回 array
的最后一个值。如果 array
是空(如果不是一个数组),将会返回 NULL
。
$array = array(1,2,3,4,5); $tem =array_pop($array); echo "<pre>"; print_r($tem);//返回最后一个值为5 echo "</pre>";
21.array_push — 将一个或多个单元压入数组的末尾(入栈) 。返回处理之后数组的元素个数。
$array = array(1,2,3,4,5); $tem =array_push($array,6); echo "<pre>"; print_r($tem);//返回处理之后数组的元素个数。 echo "</pre>";
22.array_shift — 将数组开头的单元移出数组。注意,返回移出的值,如果 array
为 空或不是一个数组则返回 NULL
。
$array = array(1,2,3,4,5); $tem =array_shift($array); echo "<pre>"; print_r($tem);//返回移出的值为1 echo "</pre>";
23.array_unshift — 在数组开头插入一个或多个单元
$array = array(1,2,3,4,5); $tem =array_unshift($array,22); echo "<pre>"; print_r($tem);//返回数组的元素个数 echo "</pre>";
24.list();
//按索引角标顺序来进行解构,但是角标必须从0开始,并且是连续的
//只对索引数组有效,当遇到关联数组会直接跳过
$array5 = array("name" => "zhangsan",0 => "lisi",1 =>"wangwu"); list($a,$b) = $array5; echo $a." ".$b; //结果为lisi,wangwu
25.each();
//会返回第一个键值对的一个数组(索引和关联数组的混合形式),
//当第二次调用是,游标会自动到下一个,即第二个键值对数组;
$array6 = array("name" => "fangming",0 => "18", "sex" => "man"); $iem1 = each($array6); print_r($iem1); echo "<br>"; $iem2 = each($array6); print_r($iem2);
26.list,each结合使用
list($a,$b) = each($array6); echo $a.":".$b."<br>";
27.利用while循环结合list,each进行遍历
$array7 = array("name" => "fangming","age" => "18", "sex" => "man"); while(list($a,$b) = each($array7)){ echo $a.":".$b."<br>"; };
28.reset,重置数组,使游标返回第一位
reset($array7);