多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】 > 这篇文章主要介绍了php常用数组array函数,结合实例形式总结分析了php常用的数组操作函数,包括数组的赋值、拆分、合并、计算、添加、删除、查询、判断、排序等,需要的朋友可以参考下 [TOC] 本文实例总结了php常用数组array函数。分享给大家供大家参考,具体如下: ### 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>"; /**结果 blue red */ ~~~ ### array_shift > 功能:移除开头的元素,与array_pop相反 ~~~ <?php $fruit = array("milk","orange","banana","apple"); $top = array_shift($fruit); print_r($top); echo "<br>"; print_r($fruit); /**结果 milk Array ( [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,倒数第二个是-2 print_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; /**结果 4 5 */ ~~~ ### 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>"; /**结果 foot bike foot plane */ ~~~ ### 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,green red,green green */ ~~~ ### 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 = orange a = lemon c = banana d = 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 = orange a = lemon c = banana d = apple d = apple c = banana a = lemon b = 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 = apple c = banana b = orange a = lemon */ ~~~ ### rsort > 功能:按照值进行逆向排序,键名改变 ~~~ <?php $fruits = array( "a"=>"lemon", "b"=>"orange", "c"=>"banana", "d"=>"apple", ); rsort($fruits);//按照值进行逆向排序或数字,键名改变 foreach($fruits as $key=>$val){ echo "$key = $val<br>"; } /**结果 0 = orange 1 = lemon 2 = banana 3 = 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 = apple 1 = banana 2 = lemon 3 = orange */ ~~~ > 函数 描述 > array() 创建数组。 > array_change_key_case() 把数组中所有键更改为小写或大写。 > array_chunk() 把一个数组分割为新的数组块。 > array_column() 返回输入数组中某个单一列的值。 > array_combine() 通过合并两个数组来创建一个新数组。 > array_count_values() 用于统计数组中所有值出现的次数。 > array_diff() 比较数组,返回差集(只比较键值)。 > array_diff_assoc() 比较数组,返回差集(比较键名和键值)。 > array_diff_key() 比较数组,返回差集(只比较键名)。 > array_diff_uassoc() 比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。 > array_diff_ukey() 比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。 > array_fill() 用给定的键值填充数组。 > array_fill_keys() 用指定键名的给定键值填充数组。 > array_filter() 用回调函数过滤数组中的元素。 > array_flip() 交换数组中的键和值。 > array_intersect() 比较数组,返回交集(只比较键值)。 > array_intersect_assoc() 比较数组,返回交集(比较键名和键值)。 > array_intersect_key() 比较数组,返回交集(只比较键名)。 > array_intersect_uassoc() 比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。 > array_intersect_ukey() 比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。 > array_key_exists() 检查指定的键名是否存在于数组中。 > array_keys() 返回数组中所有的键名。 > array_map() 把数组中的每个值发送到用户自定义函数,返回新的值。 > array_merge() 把一个或多个数组合并为一个数组。 > array_merge_recursive() 递归地合并一个或多个数组。 > array_multisort() 对多个数组或多维数组进行排序。 > array_pad() 用值将数组填补到指定长度。 > array_pop() 删除数组的最后一个元素(出栈)。 > array_product() 计算数组中所有值的乘积。 > array_push() 将一个或多个元素插入数组的末尾(入栈)。 > array_rand() 返回数组中一个或多个随机的键。 > array_reduce() 通过使用用户自定义函数,以字符串返回数组。 > array_replace() 使用后面数组的值替换第一个数组的值。 > array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。 > array_reverse() 以相反的顺序返回数组。 > array_search() 搜索数组中给定的值并返回键名。 > array_shift() 删除数组中首个元素,并返回被删除元素的值。 > array_slice() 返回数组中被选定的部分。 > array_splice() 删除并替换数组中指定的元素。 > array_sum() 返回数组中值的和。 > array_udiff() 比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。 > array_udiff_assoc() 比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。 > array_udiff_uassoc() 比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。 > array_uintersect() 比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。 > array_uintersect_assoc() 比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。 > array_uintersect_uassoc() 比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。 > array_unique() 删除数组中的重复值。 > array_unshift() 在数组开头插入一个或多个元素。 > array_values() 返回数组中所有的值。 > array_walk() 对数组中的每个成员应用用户函数。 > array_walk_recursive() 对数组中的每个成员递归地应用用户函数。 > arsort() 对关联数组按照键值进行降序排序。 > asort() 对关联数组按照键值进行升序排序。 > compact() 创建包含变量名和它们的值的数组。 > count() 返回数组中元素的数目。 > current() 返回数组中的当前元素。 > each() 返回数组中当前的键/值对。 > end() 将数组的内部指针指向最后一个元素。 > extract() 从数组中将变量导入到当前的符号表。 > in_array() 检查数组中是否存在指定的值。 > key() 从关联数组中取得键名。 > krsort() 对数组按照键名逆向排序。 > ksort() 对数组按照键名排序。 > list() 把数组中的值赋给一些变量。 > natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。 > natsort() 用“自然排序”算法对数组排序。 > next() 将数组中的内部指针向前移动一位。 > pos() current() 的别名。 > prev() 将数组的内部指针倒回一位。 > range() 创建包含指定范围单元的数组。 > reset() 将数组的内部指针指向第一个元素。 > rsort() 对数组逆向排序。 > shuffle() 将数组打乱。 > sizeof() count() 的别名。 > sort() 对数组排序。 > uasort() 使用用户自定义的比较函数对数组中的键值进行排序。 > uksort() 使用用户自定义的比较函数对数组中的键名进行排序。 > usort() 使用用户自定义的比较函数对数组进行排序。