欢迎访问宙启技术站
智能推送

php 数组去重并加以排序

发布时间:2023-05-17 05:22:06

在日常开发中,我们常常需要对一个数组进行去重、排序等操作,以便更好的完成业务需求。本篇文章将介绍如何使用 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,其中每个值只出现一次并按从小到大的顺序排列。