当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

4.3.1数组排序

9/17/2020 9:38:49 PM 人评论

4.3.1数组排序

4.3 常用数组操作

本节介绍一些常用的数组操作,包括数组排序、填充数组、合并数组、拆分数组、数组统计等。

4.3.1 数组排序

数组排序操作指按数组元素值的升序、降序或反序重新排列数组元素的位置。

1.升序排列数组

可以使用asort()函数对数组进行升序排列,其语法如下:

bool asort ( array &$array)

如果排序成功,则返回 TRUE;否则返回 FALSE。

【例4-25】 使用asort()函数对数组进行升序排列。

<?PHP

$emp = array('王二', '张三', '李四', '王五',);

asort($emp);

print_r($emp);

?>

程序的运行结果如下:

Array ( [2] =>李四 [0] =>王二 [3] =>王五 [1] =>张三 )

2.降序排列数组

可以使用arsort()函数对数组元素进行降序排列。它的用法与asort()函数相似。

【例4-26】 使用arsort()函数对数组进行降序排列。

<?PHP

$emp = array('王二', '张三', '李四', '王五',);

arsort($emp);

print_r($emp);

?>

程序的运行结果如下:

Array ( [1] =>张三 [3] =>王五 [0] =>王二 [2] =>李四 )

3.反序排列数组

可以使用array_reverse()函数对数组元素进行反序排列,其语法如下:

array array_reverse ( array $array)

函数接受数组array作为输入并返回一个单元为相反顺序的新数组。

【例4-27】 使用array_reverse()函数对数组进行反序排列。

<?PHP

$emp = array('王二', '张三', '李四','王五');

$emp = array_reverse ($emp, True);

print_r($emp);

?>

程序的运行结果如下:

Array ( [3] =>王五 [2] =>李四 [1] =>张三 [0] =>王二 )

4.3.2 填充数组

使用array_fill()函数可以指定的值填充所有的数组元素,它的基本语法结构如下:

array array_fill ( int $start_index, int $num, mixed $value)

参数说明如下。

• start_index:指定数组键的起始序号。

• num:指定填充数组元素的数量。

• value:指定填充数组元素的值。

【例4-28】 array_fill()函数的应用实例。

<?PHP

$arr = array_fill(2, 10, "element");

print_r($arr);

?>

程序的运行结果如下:

Array ( [2] => element [3] => element [4] => element [5] => element [6] => element [7] => element [8] => element [9] => element [10] => element [11] => element )

4.3.3 合并数组

使用 array_merge 函数可以将多个数组合并为一个数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。它的基本语法结构如下:

array array_merge ( array array1, array array2 [, array ...])

【例4-29】 array_merge()函数的应用实例。

<?php

$array1 = array("color" => "red", 2, 4);

$array2 = array("a", "b", "color" => "green", "shape" => "cicle", 4);

$result = array_merge($array1, $array2);

print_r($result);

?>

程序的运行结果如下:

Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => circle [4] => 4 )

可以看到,两个数组的内容已经合并到一个数组中。因为关键字为 color 的元素在$arr_1 和$arr_2中都存在,所以使用后面的数组($arr_2)的值(green)作为新数组的值。

4.3.4 拆分数组

使用array_chunk()函数可以将一个数组拆分为多个数组,其语法如下:

array array_chunk ( array $input , int $size [, bool $preserve_keys ] )

$input是被拆分的数组,$size指定拆分后数组的大小。将可选参数preserve_keys设为TRUE,可以使PHP保留输入数组中$input原来的键名。如果将其指定为FALSE,则每个结果数组将用从0开始的新数字索引。默认值是FALSE。

【例4-30】 array_chunk()函数的应用实例。

<?php

$input_array = array('a', 'b', 'c', 'd', 'e');

print_r(array_chunk($input_array, 2));

echo("<BR>");

print_r(array_chunk($input_array, 2, true));

?>

程序的运行结果如下:

Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] =>Array ( [0] => e ) )

Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [2] => c [3] => d ) [2] =>Array ( [4] => e ) )

可以看到,数组$input_array被拆分为3个数组。如果将可选参数preserve_keys设为TRUE,则拆分得到的数组保留原来的键名。

4.3.5 数组统计

本小节介绍两个对数组进行统计的函数。

1.array_count_values()函数

array_count_values()函数用于统计数组中所有值出现的次数,结果返回到另一个数组中。可以使用此函数对数组中的数据进行统计,其语法如下:

array array_count_values ( array $input )

函数返回一个数组,该数组用input数组中的值作为键名,该值在input数组中出现的次数作为值。

【例4-31】 array_count_values()函数的应用实例。

<?PHP

$arr = array(1, 2, 2, 3, 4, 5, 1, 4, 4);

$tmp = array_count_values($arr);

print_r($tmp);

?>

程序的运行结果如下:

Array ( [1] => 2 [2] => 2 [3] => 1 [4] => 3 [5] => 1 )

2.array_sum()函数

array_sum()函数可以对数组中元素的值进行求和操作,其语法如下:

number array_sum ( array $array )

【例4-32】 array_sum()函数的应用实例。

<?php

$a = array(2, 4, 6, 8);

echo "sum(a) = " . array_sum($a) . "<BR>";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);

echo "sum(b) = " . array_sum($b) . "<BR>";

?>

程序的运行结果如下:

sum(a) = 20

sum(b) = 6.9

相关教程

共有条评论 网友评论

验证码: 看不清楚?