本文实例总结了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程序设计有所帮助。