这篇文章紧张先容了php常用数组array函数,结合实例形式总结剖析了php常用的数组操作函数,包括数组的赋值、拆分、合并、打算、添加、删除、查询、判断、排序等,须要的朋友可以参考下
array_combine
功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值
<?php$a = array(\"大众one\公众,\"大众two\"大众,\公众three\"大众);$b = array(\公众一\"大众,\"大众二\"大众,\公众三\"大众);$c = array_combine($a,$b);print_r($c);/结果Array ( [one] => 一 [two] => 二 [three] => 三 )/
array_chunk
功能:拆分数组成多个数组
<?php$input_array = array(\"大众a\"大众=>\公众apple\"大众,\公众b\"大众=>\"大众blue\"大众,\"大众c\公众,\"大众d\"大众,\"大众e\"大众);echo \公众<pre>\"大众;print_r(array_chunk($input_array, 2));print_r(array_chunk($input_array, 2,True));echo \"大众</pre>\"大众;/结果Array( [0] => Array ( [0] => apple [1] => blue ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e ))Array( [0] => Array ( [a] => apple [b] => blue ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [2] => e ))/
array_count_values
功能:统计数组中值涌现的次数
<?php$input_array = array(\"大众a\"大众=>\"大众apple\"大众,\公众b\公众=>\"大众blue\公众,\"大众c\"大众,\"大众d\公众,\公众e\"大众);echo \"大众<pre>\"大众;print_r(array_count_values($input_array));echo \"大众</pre>\"大众;/结果Array( [apple] => 1 [blue] => 1 [c] => 1 [d] => 1 [e] => 1)/
array_diff
功能:第一个数组中去掉第二个数组中有的数据,返回剩下的内容作为结果
<?php$array1 = array(\"大众a\公众=>\"大众apple\公众,\"大众b\公众=>\"大众blue\"大众,\"大众c\"大众,\公众d\"大众,\"大众e\公众);$array2 = array(\"大众apple\公众,\"大众c\"大众,\"大众d\公众,\"大众f\"大众);$result = array_diff($array1, $array2);$result2 = array_diff($array2, $array1);echo \"大众<pre>\"大众;print_r($result);//数组1中去掉数组2中剩下的print_r($result2);//数组2中去掉数组1中剩下的echo \"大众</pre>\"大众;/结果Array( [b] => blue [2] => e)Array( [3] => f)/
array_map
功能:将回调函数实行到数组中
<?php//定义回调函数function cube($n){ return ($n$n$n);}$a = array(1,2,3,4,5);$b = array_map(\公众cube\"大众,$a);echo \"大众<pre>\公众;print_r($b);echo \公众</pre>\"大众;/结果Array( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125)/
array_merge
功能:合并一个或多个数组
解释:如果后面有键名相同的会覆盖掉前面的内容,键名为数字的会添加到后面
<?php$array1 = array(\"大众color\公众=>\公众red\"大众,2,4);$array2 = array(\"大众a\"大众,\"大众b\"大众,\公众color\"大众=>\"大众green\"大众,\公众shape\"大众=>\公众trapezoid\"大众,4);$result1 = array_merge($array1,$array2);$result2 = array_merge_recursive($array1,$array2);echo \公众<pre>\"大众;print_r($result1);print_r($result2);echo \"大众</pre>\公众;/结果Array( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4)Array( [color] => Array ( [0] => red [1] => green ) [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4)/
array_pop
功能:剔除数组末了一个元素,返回被剔除的元素内容
<?php$stack = array(\"大众orange\"大众,\"大众banana\公众,\"大众apple\"大众,\公众1\公众);$last = array_pop($stack);echo \"大众<pre>\"大众;print_r($stack);print_r($last);echo \公众</pre>\"大众;/结果Array( [0] => orange [1] => banana [2] => apple)1/
array_push
功能:将一个多个单元压入数组末端,返回之后的数组个数
<?php$stack = array(\公众orange\"大众,\公众banana\公众);$count = array_push($stack,\"大众apple\"大众,\公众red\公众,\"大众blue\"大众);echo \公众<pre>\公众;print_r($stack);print_r($count);echo \"大众</pre>\公众;/结果Array( [0] => orange [1] => banana [2] => apple [3] => red [4] => blue)5/
array_rand
功能:获取随机的键名
<?php$input = array(\公众orange\"大众,\"大众banana\公众,\"大众apple\"大众,\公众red\公众,\"大众blue\"大众);$rand = array_rand($input,2);;print_r($rand);$rand = array_rand($input,3);print_r($rand);/结果Array( [0] => 1 [1] => 4)Array( [0] => 0 [1] => 1 [2] => 3)/
array_search
功能:查询数组中的内容,返回键值,如果有多个匹配,返回第一个匹配的内容
<?php$array = array(\"大众blue\"大众=>\"大众b\"大众,\"大众red\"大众=>\公众r\公众,\"大众green\"大众,\"大众r\"大众);$key = array_search('b', $array);echo $key;echo \公众<br>\"大众;$key = array_search('r', $array);echo $key;echo \公众<br>\公众;/结果bluered/
array_shift
功能:移除开头的元素,与array_pop相反
<?php$fruit = array(\公众milk\"大众,\"大众orange\"大众,\"大众banana\"大众,\"大众apple\"大众);$top = array_shift($fruit);print_r($top);echo \公众<br>\公众;print_r($fruit);/结果milkArray ( [0] => orange [1] => banana [2] => apple )/
array_unique
功能:去除数组重复的元素,保留第一个涌现的,包括键名和值
<?php$input = array(\"大众a\"大众=>\"大众green\"大众,\"大众red\公众,\"大众b\"大众=>\公众green\"大众,\公众blue\公众,\"大众c\公众=>\"大众red\公众);$result = array_unique($input);print_r($result);echo \"大众<br>\公众;print_r($input);/结果Array ( [a] => green [0] => red [1] => blue )Array ( [a] => green [0] => red [b] => green [1] => blue [c] => red )/
array_slice
功能:从数组中取出部分元素
<?php$input = array(\"大众a\公众,\"大众b\"大众,\"大众c\"大众,\"大众d\"大众,\"大众e\公众);$output = array_slice($input,2);//第二个参数没有时,表示取到末了一个元素print_r($output);echo \公众<br>\公众;$output = array_slice($input,-2,1);//第二个参数是正数时,表示个数;倒数第一个是-1,倒数第二个是-2print_r($output);echo \公众<br>\公众;$output = array_slice($input,0,3);print_r($output);echo \"大众<br>\公众;$output = array_slice($input,2,-1);//第二个参数是负数时,表示位置,取到哪一位,不包括本身print_r($output);echo \"大众<br>\"大众;$output = array_slice($input,2,-1,true);//第三个参数为true时,保留原有的键值print_r($output);echo \"大众<br>\"大众;/结果Array ( [0] => c [1] => d [2] => e )Array ( [0] => d )Array ( [0] => a [1] => b [2] => c )Array ( [0] => c [1] => d )Array ( [2] => c [3] => d )/
count
功能:返回数组元素个数,元素为数组的算一个
<?php$input = array(\"大众a\公众,\公众b\公众,\"大众c\公众,array(\"大众d\"大众,\"大众e\"大众));$count = count($input);echo $count;echo \"大众<br>\"大众;$input = array(\公众a\"大众,\"大众b\公众,\"大众c\公众,\"大众d\"大众,\公众e\公众);$count = count($input);echo $count;/结果45/
current
功能:获取当前的指针指向元素
<?php$array = array(\"大众foot\公众,\"大众bike\"大众,\"大众car\"大众,\"大众plane\"大众);$result = current($array);echo $result.\"大众<br>\公众;next($array);//使指针指向下一个元素$result = current($array);echo $result.\公众<br>\"大众;prev($array);//使指针指向前一个元素$result = current($array);echo $result.\公众<br>\"大众;end($array);//使指针指向末了一个元素$result = current($array);echo $result.\公众<br>\"大众;/结果footbikefootplane/
in_array
功能:考验某值是否存在数组中,有返回True,没有返回False
<?php$os_list = array(\"大众Mac\公众,\"大众NT\"大众,\"大众Irix\公众,\"大众Linux\"大众);if(in_array(\"大众Irix\公众,$os_list)){ echo \"大众当前操作系统列表中存在Irix\"大众;}else{ echo \"大众当前操作系统列表中不存在Irix\"大众;}echo \"大众<br>\"大众;if(in_array(\公众mac\"大众,$os_list)){ echo \"大众当前操作系统列表中存在mac\"大众;}else{ echo \公众当前操作系统列表中不存在mac\"大众;}echo \"大众<br>\"大众;/结果当前操作系统列表中存在Irix当前操作系统列表中不存在mac/
list
功能:将数组中的信息赋值给多个变量
<?php$info = array(\"大众red\"大众,\公众blue\公众,\"大众green\公众);list($flag,$sky,$grassland) = $info;echo \"大众$flag,$sky,$grassland\"大众;echo \公众<br>\"大众;list($flag,,$grassland) = $info;echo \"大众$flag,$grassland\"大众;echo \"大众<br>\"大众;list(,,$grassland) = $info;echo \公众$grassland\公众;echo \"大众<br>\"大众;/结果red,blue,greenred,greengreen/
shuffle
功能:打乱数组
<?php$numbers = range(1,5);//天生一个随机数组print_r($numbers);echo \"大众<br/>\"大众;shuffle($numbers);//打乱数组print_r($numbers);/结果Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )Array ( [0] => 4 [1] => 1 [2] => 5 [3] => 2 [4] => 3 )/
array_keys
功能:获取数组的键名,第二个参数可以指定获取某个元素
<?php$array = array(0=>100,\"大众color\"大众=>\"大众red\"大众);print_r(array_keys($array));echo \"大众<br>\"大众;$array = array(\"大众blue\"大众,\"大众red\"大众,\公众green\公众,\"大众blue\公众,\"大众blue\公众);print_r(array_keys($array,\公众blue\"大众));echo \"大众<br>\"大众;$array = array(\"大众color\"大众=>array(\"大众blue\"大众,\公众red\"大众,\"大众green\"大众),\"大众size\公众=>array(\"大众small\"大众,\"大众medium\"大众,\公众large\"大众));print_r(array_keys($array));echo \公众<br>\"大众;/结果Array ( [0] => 0 [1] => color )Array ( [0] => 0 [1] => 3 [2] => 4 )Array ( [0] => color [1] => size )/
array_reverse
功能:获取数组的反向
<?php$input = array(\"大众php\"大众,3.0,array(\公众green\"大众,\公众red\"大众));$result = array_reverse($input); //打乱键名$result_keyed = array_reverse($input,TRUE);//保留键名print_r($result);print_r($result_keyed);/结果Array( [0] => Array ( [0] => green [1] => red ) [1] => 3 [2] => php)Array( [2] => Array ( [0] => green [1] => red ) [1] => 3 [0] => php)/
arsort
功能:逆向排序,索引不变
<?php$fruits = array( \"大众a\"大众=>\"大众lemon\"大众, \"大众b\"大众=>\公众orange\"大众, \公众c\"大众=>\公众banana\"大众, \"大众d\"大众=>\"大众apple\公众, );arsort($fruits);//按照字符逆向排序或数字foreach($fruits as $key=>$val){ echo \"大众$key = $val<br>\公众;}/结果b = orangea = lemonc = bananad = apple/
asort
功能:进行正向排序
<?php$fruits = array( \"大众a\"大众=>\公众lemon\公众, \"大众b\"大众=>\公众orange\"大众, \公众c\"大众=>\"大众banana\"大众, \"大众d\"大众=>\公众apple\"大众, );arsort($fruits);//按照字符逆向排序或数字foreach($fruits as $key=>$val){ echo \"大众$key = $val<br>\"大众;}echo \"大众<p>\公众;asort($fruits);//按照字符正向排序或数字foreach($fruits as $key=>$val){ echo \"大众$key = $val<br>\"大众;}/结果b = orangea = lemonc = bananad = appled = applec = bananaa = lemonb = orange/
krsort
功能:按照键名进行逆向排序
<?php$fruits = array( \"大众a\公众=>\公众lemon\"大众, \"大众b\"大众=>\"大众orange\公众, \"大众c\"大众=>\公众banana\"大众, \"大众d\公众=>\"大众apple\"大众, );krsort($fruits);//按照键名逆向排序或数字foreach($fruits as $key=>$val){ echo \"大众$key = $val<br>\"大众;}/结果d = applec = bananab = orangea = lemon/
ksort
功能:按照键名进行正向排序
<?php$fruits = array( \"大众a\公众=>\"大众lemon\"大众, \"大众b\公众=>\"大众orange\公众, \"大众c\公众=>\公众banana\"大众, \"大众d\"大众=>\公众apple\公众, );ksort($fruits);//按照键名正向排序或数字foreach($fruits as $key=>$val){ echo \公众$key = $val<br>\"大众;}/结果a = lemonb = orangec = bananad = apple/
rsort
功能:按照值进行逆向排序,键名改变
<?php$fruits = array( \公众a\"大众=>\"大众lemon\"大众, \公众b\"大众=>\"大众orange\"大众, \"大众c\公众=>\"大众banana\"大众, \公众d\公众=>\"大众apple\"大众, );rsort($fruits);//按照值进行逆向排序或数字,键名改变foreach($fruits as $key=>$val){ echo \"大众$key = $val<br>\"大众;}/结果0 = orange1 = lemon2 = banana3 = apple/
sort
功能:按照值进行正向排序,键名改变
<?php$fruits = array( \公众a\"大众=>\"大众lemon\"大众, \公众b\"大众=>\"大众orange\公众, \"大众c\"大众=>\"大众banana\"大众, \"大众d\"大众=>\"大众apple\"大众, );sort($fruits);//按照值进行逆向排序或数字,键名改变foreach($fruits as $key=>$val){ echo \公众$key = $val<br>\公众;}/结果0 = apple1 = banana2 = lemon3 = orange/