php中数组排序的方法有哪些

PHPz
发布: 2023-04-20 14:24:44
原创
3413 人浏览过

在PHP中,数组是一个非常重要的数据类型,它能够存储一系列的数据并且能够方便的进行操作。当我们需要对数组进行排序时,PHP提供了很多内置函数和方法。

本篇文章将介绍PHP中常用的数组排序方法,主要包括以下内容:

  1. array_sort()函数
  2. sort()函数
  3. asort()函数
  4. ksort()函数
  5. usort()函数
  6. uasort()函数
  7. uksort()函数
  8. natsort()函数
  9. arsort()函数
  10. rsort()函数
  11. array_sort()函数

array_sort()函数是PHP中自定义的一个函数,可以用来对数组进行排序。该函数调用时需要传入两个参数,第一个参数为要排序的数组,第二个参数为排序方式,可以使用SORT_ASC和SORT_DESC两种方式。

下面是一个使用array_sort()函数对数组进行排序的例子:

function array_sort($arr,$keys,$type=SORT_ASC){
    $keysvalue = array();
    foreach($arr as $key=>$val){
        $keysvalue[$key] = $val[$keys];
    }
    if($type == SORT_ASC){
        asort($keysvalue);
    }else{
        arsort($keysvalue);
    }
    reset($keysvalue);
    foreach($keysvalue as $key=>$vals) {
        $keysort[$key] = $key;
    }
    $new_array = array();
    foreach($keysort as $key=>$val) {
        $new_array[$val] = $arr[$val];
    }
    return $new_array;
}
登录后复制

使用方法:

$arr = array(

array('id'=>1,'name'=>'Tom','age'=>20),
array('id'=>2,'name'=>'Jerry','age'=>18),
array('id'=>3,'name'=>'Lucy','age'=>22)
登录后复制

);
$arr = array_sort($arr,'age',SORT_DESC);
print_r($arr);

输出结果:

Array
(

[0] => Array
    (
        [id] => 3
        [name] => Lucy
        [age] => 22
    )

[1] => Array
    (
        [id] => 1
        [name] => Tom
        [age] => 20
    )

[2] => Array
    (
        [id] => 2
        [name] => Jerry
        [age] => 18
    )
登录后复制

)

  1. sort()函数

sort()函数是PHP中常用的排序函数之一,主要针对数组进行排序。它可以按照升序或者降序的方式进行排序,也可以保持数组的索引关系不变。

下面是一个使用sort()函数对数组进行排序的例子:

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

输出结果:

Array
(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
登录后复制

)

  1. asort()函数

asort()函数是对数组进行排序的一种方法,它可以按照升序或者降序的方式进行排序,但是会保持数组的索引关系不变。在使用asort()函数时,它会根据数组的值来进行排序。

下面是一个使用asort()函数对数组进行排序的例子:

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

输出结果:

Array
(

[1] => 1
[3] => 2
[0] => 3
[2] => 4
[4] => 5
登录后复制

)

  1. ksort()函数

ksort()函数是对数组进行排序的一种方法,它可以按照升序或者降序的方式来排序,但是会保持数组的键(key)与值(value)之间的关系不变。

下面是一个使用ksort()函数对数组进行排序的例子:

$arr = array('d'=>'Dog','a'=>'Apple','c'=>'Cat','b'=>'Boy');
ksort($arr);
print_r($arr);

输出结果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登录后复制
登录后复制
登录后复制

)

  1. usort()函数

usort()函数是对数组进行排序的一种方法,它不同于其他排序函数,usort()函数允许您自定义一个排序算法。当使用usort()函数时,您可以指定一个比较函数,此函数将根据需要的标准(例如字符串中包含的字符数或数字大小)比较数组的值。

下面是一个使用usort()函数对数组进行排序的例子:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登录后复制
登录后复制
登录后复制

}
$arr = array(3,1,4,2,5);
usort($arr, "cmp");
print_r($arr);

输出结果:

Array
(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
登录后复制

)

  1. uasort()函数

uasort()函数是PHP中的一种排序函数,它与usort()函数类似,允许您自定义排序算法。但是与usort()函数不同的是,它会保持数组的键(key)值不变。

下面是一个使用uasort()函数对数组进行排序的例子:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登录后复制
登录后复制
登录后复制

}
$arr = array('d'=>'Dog','a'=>'Apple','c'=>'Cat','b'=>'Boy');
uasort($arr, "cmp");
print_r($arr);

输出结果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登录后复制
登录后复制
登录后复制

)

  1. uksort()函数

uksort()函数是PHP中的一种排序函数,它和ksort()函数类似,也可以按照升序或者降序的方式来排序。但是与ksort()函数不同的是,它允许您自定义排序算法,并且保持键(key)与值(value)之间的关系不变。

下面是一个使用uksort()函数对数组进行排序的例子:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登录后复制
登录后复制
登录后复制

}
$arr = array('d'=>'Dog','a'=>'Apple','c'=>'Cat','b'=>'Boy');
uksort($arr, "cmp");
print_r($arr);

输出结果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登录后复制
登录后复制
登录后复制

)

  1. natsort()函数

natsort()函数是PHP中的一种排序函数,它对一个数组按照自然数排序,这可能不太符合人的直觉,因为它会按照数字串中的数字进行比较。

下面是一个使用natsort()函数对数组进行排序的例子:

$arr = array('img12.png', 'img10.png', 'img2.png', 'img1.png');
natsort($arr);
print_r($arr);

输出结果:

Array
(

[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
登录后复制

)

  1. arsort()函数

arsort()函数是PHP中的一种排序函数,它可以按照降序方式将数组中的元素进行排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用arsort()函数对数组进行排序的例子:

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

输出结果:

Array
(

[4] => 5
[2] => 4
[0] => 3
[1] => 1
[3] => 2
登录后复制

)

  1. rsort()函数

rsort()函数是PHP中常用的排序函数之一,它可以按照降序的方式来排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用rsort()函数对数组进行排序的例子:

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

输出结果:

Array
(

[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
登录后复制

)

总结:

以上介绍了PHP中常用的数组排序方法,包括array_sort()函数、sort()函数、asort()函数、ksort()函数、usort()函数、uasort()函数、uksort()函数、natsort()函数、arsort()函数和rsort()函数。不同的排序函数有不同的需求和使用场景,开发者应根据具体的需求来选择合适的排序函数。

以上是php中数组排序的方法有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!