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

PHP数组常用函数:array_sort、array_unique等详解

发布时间:2023-06-11 00:16:51

PHP语言中的数组是非常重要的数据类型之一,几乎在所有的Web开发项目中都会使用到。对于数组的操作和处理,虽然PHP内置了很多常用的函数,但是由于PHP的语法较为灵活,不同的开发者往往会有不同的习惯和方式来处理数组。本文将介绍PHP数组常用的一些内置函数,主要包括:array_sort、array_unique、array_reverse、array_diff、array_intersect、array_search等。

array_sort

PHP中的排序函数非常多,但是为数组排序的函数中,最常用的是array_sort函数。该函数的作用是对数组进行升序或降序排列,默认是升序排列。

语法:

array_sort(array &$arr[, int $sort_order = SORT_ASC [, int $sort_type = SORT_REGULAR]])

参数解析:

$arr:待排序的数组,必须传入引用,否则无法对原数组进行修改。

$sort_order:排序顺序,默认为升序(SORT_ASC),也可以指定降序排序(SORT_DESC)。

$sort_type:排序类型,有四种可选,分别是:SORT_REGULAR、SORT_NUMERIC、SORT_STRING、SORT_LOCALE_STRING,具体说明如下:

SORT_REGULAR:默认的排序方式,将每个值相互比较,数值和字符串比较时会先将字符串转为数值类型再比较。

SORT_NUMERIC:数值比较,将每个值转为数值类型再比较。

SORT_STRING:字符串比较,将每个值转为字符串类型再比较。

SORT_LOCALE_STRING:与 SORT_STRING 类似,但会根据当前区域设定来进行比较。

示例:

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

array_sort($arr); // $arr = array(2, 3, 4, 5, 7, 8)

array_sort($arr, SORT_DESC); // $arr = array(8, 7, 5, 4, 3, 2)

array_sort($arr, SORT_DESC, SORT_NUMERIC); // $arr = array(8, 7, 5, 4, 3, 2)

array_unique

array_unique函数用于去除数组中重复的值,并返回剩下的值组成的新数组。

语法:

array_unique(array $arr[, int $sort_type = SORT_STRING])

参数解析:

$arr:待去重的数组。

$sort_type:可选参数,用于指定去重时的比较方式,同array_sort函数的$sort_type参数。

示例:

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

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

array_reverse

array_reverse函数用于将数组中的元素顺序倒置,并返回新的数组。

语法:

array_reverse(array $arr[, bool $preserve_key = false])

参数解析:

$arr:待倒置的数组。

$preserve_key:可选参数,指定是否保留原数组的键,取值为true或false,默认为false。

示例:

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

$new_arr = array_reverse($arr); // $new_arr = array('d', 'c', 'b', 'a')

$new_arr = array_reverse($arr, true); // $new_arr = array('d'=> 'd', 'c'=> 'c', 'b'=> 'b', 'a'=> 'a')

array_diff

array_diff函数用于比较两个数组的差异,并返回差异的部分。

语法:

array_diff(array $arr1, array $arr2[, array $arr3 [, ...]])

参数解析:

$arr1、$arr2、$arr3:待比较的数组,可以传入多个数组。

示例:

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

$arr2 = array('c', 'd', 'e', 'f');

$diff_arr = array_diff($arr1, $arr2); // $diff_arr = array('a', 'b')

array_intersect

array_intersect函数用于比较两个数组的交集,并返回交集部分。

语法:

array_intersect(array $arr1, array $arr2[, array $arr3 [, ...]])

参数解析:

$arr1、$arr2、$arr3:待比较的数组,可以传入多个数组。

示例:

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

$arr2 = array('c', 'd', 'e', 'f');

$intersect_arr = array_intersect($arr1, $arr2); // $intersect_arr = array('c', 'd')

array_search

array_search函数用于在数组中查找指定的值,并返回其对应的键名。

语法:

array_search(mixed $value, array $arr[, bool $strict = false])

参数解析:

$value:待查找的值。

$arr:待查找的数组。

$strict:可选参数,指定查找时是否使用严格比较,取值为true或false,默认为false。

示例:

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

$key = array_search('c', $arr); // $key = 2

$key = array_search('c', $arr, true); // $key = false

以上就是PHP数组常用的一些内置函数的详细解析,它们是我们在开发过程中经常使用的基础工具,希望对大家能有所帮助。