本文实例总结了php常用数组array函数。分享给大家供大家参考,具体如下:
array_combine
功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值
案例:
1
2
3
4
5
6
7
8
|
<?php $a = array ( "one" , "two" , "three" ); $b = array ( "一" , "二" , "三" ); $c = array_combine ( $a , $b ); print_r( $c ); /**结果 *Array ( [one] => 一 [two] => 二 [three] => 三 ) */ |
array_chunk
功能:拆分数组成多个数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?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
功能:统计数组中值出现的次数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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
功能:第一个数组中去掉第二个数组中有的数据,返回剩下的内容作为结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?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
功能:将回调函数执行到数组中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?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
功能:合并一个或多个数组
说明:如果后面有键名相同的会覆盖掉前面的内容,键名为数字的会添加到后面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<?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
功能:剔除数组最后一个元素,返回被剔除的元素内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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
功能:将一个多个单元压入数组末尾,返回之后的数组个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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
功能:获取随机的键名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?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
功能:查询数组中的内容,返回键值,如果有多个匹配,返回第一个匹配的内容
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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相反
1
2
3
4
5
6
7
8
9
10
|
<?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
功能:去除数组重复的元素,保留第一个出现的,包括键名和值
1
2
3
4
5
6
7
8
9
10
|
<?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
功能:从数组中取出部分元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?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
功能:返回数组元素个数,元素为数组的算一个
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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
功能:获取当前的指针指向元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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
功能:将数组中的信息赋值给多个变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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
功能:打乱数组
1
2
3
4
5
6
7
8
9
10
|
<?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
功能:获取数组的键名,第二个参数可以指定获取某个元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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
功能:获取数组的反向
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?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
功能:逆向排序,索引不变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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
功能:进行正向排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?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
功能:按照键名进行逆向排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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 */ |
ksort
功能:按照键名进行正向排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php $fruits = array ( "a" => "lemon" , "b" => "orange" , "c" => "banana" , "d" => "apple" , ); ksort( $fruits ); //按照键名正向排序或数字 foreach ( $fruits as $key => $val ){ echo "$key = $val<br>" ; } /**结果 a = lemon b = orange c = banana d = apple */ |
rsort
功能:按照值进行逆向排序,键名改变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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
功能:按照值进行正向排序,键名改变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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 */ |
希望本文所述对大家PHP程序设计有所帮助。