php array_multisort

php array_multisort

array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。

注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。

 

xample #3 对数据库结果进行排序

本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。

例子中的数据如下:

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?> 


本例中将把 volume 降序排列,把 edition 升序排列。

现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。

<?php
// 取得列的列表
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?> 


数据集合现在排好序了,结果如下:

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

 例子:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);

 结果:

Array
(
    [0] => Cat
    [1] => Dog
    [2] => Dog
)
Array
(
    [0] => Missy
    [1] => Pluto
    [2] => Fido
)

解析:在这个例子中,首先对 $a1数组进行SORT_ASC升序排序,cat在$a1中排在第一位。Missy与cat是一一对应的关系,所以排在$a2的第一位。

因在$a1数组中$a1[1]=Dog,$a1[0]=Dog,所以对$a2中$a2[1],$a2[2]进行SORT_DESC降序排序,Pluto在前,Fido在后。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 美国地名大全(美国城市名称英文、中文)

    美国地名大全(美国城市名称英文、中文)

    2021年12月10日
    139
  • pycharm激活【2021最新】

    (pycharm激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    136
  • idea常用快捷键分享|IntelliJ IDEA快捷键分享

    idea常用快捷键分享|IntelliJ IDEA快捷键分享前言idea工具确实好用,从eclipse到idea,永无回头路,从破解到开源license,无法逃脱真想定律。现在列举出如下快捷键,让你在idea中如鱼得水。一、Ctrl快捷键Ctrl+F在当前文件进行文本查找(必备)Ctrl+R在当前文件进行文本替换(必备)Ctrl+Z撤销(必备) Ctrl+Y删除光标所在行或删除选中的行(必备)Ctrl+X剪切光标所在行或剪切选择内容Ctrl+C复制光标所在行

    2022年5月14日
    50
  • exe免杀c语言,CobaltStrike shellcode免杀捆绑exe思路[通俗易懂]

    exe免杀c语言,CobaltStrike shellcode免杀捆绑exe思路[通俗易懂]这里演示的方式为shellcode框架加载自解压1.生成shellcode2.c加载(随便拉的加载器)#include#include#pragmacomment(linker,”/subsystem:\”windows\”/entry:\”mainCRTStartup\””)unsignedcharshellcode[]=”\xfc\xe8\x89\x00\x00\x00\x60\…

    2022年8月22日
    3
  • 牛屎芯片 | 硬件之家「建议收藏」

    牛屎芯片 | 硬件之家「建议收藏」前言:牛屎芯片又叫邦定芯片或软封装芯片,一般应用于价格较为低廉的电子设备中。原文链接:http://www.allchiphome.com/post/cow-shit_chip一、牛屎芯片牛屎芯

    2022年8月2日
    4
  • Ubuntu系统下安装SQLite Browser教程[通俗易懂]

    Ubuntu系统下安装SQLite Browser教程[通俗易懂]一、参考资料InstallSQLiteandSQLiteBrowseronUbuntu18.04LTSLinux下安装可视化数据库浏览器DBBrowserforSQLite3.37ubuntu安装sqlite3二、相关介绍SQLiteDBBrowser是一个强大的与SQLite数据库交互的工具。它被开发人员和最终用户使用。SQLiteDB浏览器不是为SQLite设计的,也不需要了解SQL。它只是一个帮助用户使用SQLite数据库的可视化工具。

    2025年10月12日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号