资讯专栏INFORMATION COLUMN

二维数组排序函数array_multisort()

senntyou / 532人阅读

摘要:文章转载自有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。第一个数组是要排序的主要数组。将每一项按常规顺序排列。规定输入的数组。可以在每个数组后设置排序顺序和排序类型。

文章转载自:http://www.nowamagic.net/libr...

有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。我们可以使用array_multisort()这个函数。array_multisort() 函数对多个数组或多维数组进行排序。

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:

SORT_ASC - 默认,按升序排列。(A-Z)

SORT_DESC - 按降序排列。(Z-A)

随后可以指定排序的类型:

SORT_REGULAR - 默认。将每一项按常规顺序排列。

SORT_NUMERIC - 将每一项按数字顺序排列。

SORT_STRING - 将每一项按字母顺序排列。

语法:array_multisort(array1,sorting order,sorting type,array2,array3...)

array1:必需。规定输入的数组。

sorting order:可选。规定排列顺序。可能的值是 SORT_ASC 和 SORT_DESC。

sorting type:可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。

array2:可选。规定输入的数组。

array3:可选。规定输入的数组。
字符串键名将被保留,但是数字键将被重新索引,从 0 开始,并以 1 递增。可以在每个数组后设置排序顺序和排序类型。如果没有设置,每个数组参数会使用默认值。

下面是一个例子:

";
    for($i=0; $i<=5; $i++)
    {
        $arr[$i]["val"] = mt_rand(1, 100);
        $arr[$i]["num"] = mt_rand(1, 100);
    }
    
    echo "
";
    print_r($arr);
    echo "
"; echo "从二维数组中抽出键为val,多带带成另一个数组:"."
"; foreach ($arr as $key => $row) { $vals[$key] = $row["val"]; $nums[$key] = $row["num"]; } echo "
";
    print_r($vals);
    echo "
"; echo "对其进行排序:"."
"; array_multisort($vals, SORT_ASC, $arr); echo "
";
    print_r($vals);
    echo "
"; ?>

运行结果:

二维数组如下:
Array
(
    [0] => Array
        (
            [val] => 46
            [num] => 49
        )
    [1] => Array
        (
            [val] => 8
            [num] => 24
        )
    [2] => Array
        (
            [val] => 37
            [num] => 3
        )
    [3] => Array
        (
            [val] => 32
            [num] => 35
        )
    [4] => Array
        (
            [val] => 19
            [num] => 38
        )
    [5] => Array
        (
            [val] => 30
            [num] => 37
        )
)
从二维数组中抽出键为val,多带带成另一个数组:
Array
(
    [0] => 46
    [1] => 8
    [2] => 37
    [3] => 32
    [4] => 19
    [5] => 30
)
对其进行排序:
Array
(
    [0] => 8
    [1] => 19
    [2] => 30
    [3] => 32
    [4] => 37
    [5] => 46
)

我们将得到一个按val升序排序的二维数组。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22200.html

相关文章

  • php 二维数组排序

    摘要:前提给定一个二维数组,请根据指定的数组写出最优的排序。排序条件,指定数组如下估计大家都没有什么问题,排序嘛,简单的不要不要的方式一这应该是最简单的方式了,直接使用现成的函数,快捷的不要不要的。 前提 给定一个二维数组,请根据指定的数组key,写出最优的排序。排序条件age asc,sex desc,指定数组如下: $arr = [ [id=>1, age=>1,...

    ashe 评论0 收藏0
  • php二维数组排序

    摘要:数组的排序,如果是一维的,那肯定相信大家都没问题。但是如果数组是二维的呢其实问题也不大毕竟大法好但是我想给大家介绍的是自己内置的一个函数就是他下面,请看一个例子某一个需要排序的神秘排序具体实现排序过程,还请小伙伴们自行脑补 数组的排序,如果是一维的,那肯定相信大家都没问题。但是如果数组是二维的呢?其实问题也不大 showImg(https://segmentfault.com/img/...

    baukh789 评论0 收藏0
  • PHP函数array_multisort()

    摘要:函数之说明函数返回排序数组。把每一项按常规顺序排列,不改变类型。把每一项作为字符串来处理,基于当前区域设置可通过进行更改。示例一维多个数组排序结果相同时,排序在的前面多维数组排序结果 PHP函数之array_multisort() array_multisort() 说明: array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接...

    RaoMeng 评论0 收藏0
  • 数组排序函数-php数组函数(一)

    摘要:下列的所有排序函数都是直接作用于数组本身,而不是返回一个新的有序的数组。倒序并保持索引关系,按键名排序按键名倒序使用用户自定义的比较函数对数组中的值进行排序,要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。 数组排序,共13个 函数中有u的,能自定义比较函数;有k的,按照键来排序;有r(reverse)的,倒序;有a(association)的,一定是键值关联,除了r...

    call_me_R 评论0 收藏0
  • array_multisort 使用笔记

    摘要:一开始遇到这个函数时,看手册怎么就是看不懂,很不理解。后来在网上看了很多的例子才慢慢理解一点。现在记下来,留着用。然后如语句一样排序即可 一开始遇到array_multisort 这个函数时,看手册 怎么就是看不懂,很不理解。后来在网上看了很多的例子 才慢慢理解一点。现在记下来,留着用。 一,一维数组排序 $a=array(Dog,Cat,Horse,Bear,Zebra); arra...

    songjz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<