php 数组去重并加以排序
在日常开发中,我们常常需要对一个数组进行去重、排序等操作,以便更好的完成业务需求。本篇文章将介绍如何使用 PHP 对数组进行去重并加以排序。
一、去重函数
在 PHP 中,数组去重可以使用 array_unique() 函数来实现。array_unique() 函数可以去除数组中重复的值并返回新的数组,保证新数组中每个值只出现一次。
语法:array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
代码实现:
$arr = array('a', 'b', 'c', 'a', 'd', 'b');
$new_arr = array_unique($arr);
print_r($new_arr);
结果输出:
Array
(
[0] => a
[1] => b
[2] => c
[4] => d
)
二、排序函数
在 PHP 中,数组排序可以使用以下几个函数来实现:
1. sort() 函数:按照数值从小到大排序
2. rsort() 函数:按照数值从大到小排序
3. asort() 函数:按照关联数组的键值从小到大排序
4. arsort() 函数:按照关联数组的键值从大到小排序
下面将分别讲解各个函数的使用方法及测试实例。
1. sort() 函数
sort() 函数按照数值从小到大排序,原数组键名保留不变。
语法:bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
代码实现:
$arr = array(4, 2, 8, 1, 9, 6);
sort($arr);
print_r($arr);
结果输出:
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 6
[4] => 8
[5] => 9
)
2. rsort() 函数
rsort() 函数按照数值从大到小排序,原数组键名保留不变。
语法:bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
代码实现:
$arr = array(4, 2, 8, 1, 9, 6);
rsort($arr);
print_r($arr);
结果输出:
Array
(
[0] => 9
[1] => 8
[2] => 6
[3] => 4
[4] => 2
[5] => 1
)
3. asort() 函数
asort() 函数按照关联数组的键值从小到大排序,原数组键名保留不变。
语法:bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
代码实现:
$arr = array('e' => 4, 'c' => 2, 'b' => 8, 'a' => 1, 'd' => 9, 'f' => 6);
asort($arr);
print_r($arr);
结果输出:
Array
(
[a] => 1
[c] => 2
[b] => 8
[e] => 4
[f] => 6
[d] => 9
)
4. arsort() 函数
arsort() 函数按照关联数组的键值从大到小排序,原数组键名保留不变。
语法:bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
代码实现:
$arr = array('e' => 4, 'c' => 2, 'b' => 8, 'a' => 1, 'd' => 9, 'f' => 6);
arsort($arr);
print_r($arr);
结果输出:
Array
(
[d] => 9
[b] => 8
[f] => 6
[e] => 4
[c] => 2
[a] => 1
)
三、数组去重并加以排序
现在我们来结合前面所介绍的函数来实现对数组的去重并加以排序。
代码实现:
$arr = array(4, 2, 8, 1, 9, 6, 1, 2, 4, 5);
$new_arr = array_unique($arr);
sort($new_arr);
print_r($new_arr);
结果输出:
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 5
[4] => 6
[5] => 8
[6] => 9
)
通过以上代码实现,我们可以看到数组 $arr 经过去重并加以排序后,返回了一个新的数组 $new_arr,其中每个值只出现一次并按从小到大的顺序排列。
