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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 爬虫新手入门教程

    python 爬虫新手入门教程python爬虫新手教程一、什么是爬虫爬虫就是把一个网站里的内容读取下来这里我们就要学习一个知识我们看到的网页是有一种叫HTML的语言编写的他可以给文字显示不同的样式如:<p&gt

    2022年7月3日
    29
  • idea2021.4.14激活码永久_通用破解码「建议收藏」

    idea2021.4.14激活码永久_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    86
  • win10如何永久关闭数字签名

    win10如何永久关闭数字签名1、如何永久关闭Win10驱动程序方法一:永久有效步骤如下:1、在开始按钮点击右键,选择“Windowspowershell(管理员)”2、执行以下命令(复制后,在命令提示符中单击鼠标右键即可完成粘贴,然后按回车键执行):bcdedit.exe/setnointegritycheckson3、命令瞬间执行完毕,若想恢复默认验证,执行如下命令即可:bcdedi…

    2022年5月13日
    117
  • mac系统pycharm配置python环境_mac python开发环境

    mac系统pycharm配置python环境_mac python开发环境一、下载安装Python3解释器使用Python3Python之父GuidovanRossum在邮件列表上宣布Python2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python2.7有关的支持,则需要付费给商业供应商。12**GuidovanRossum表示:**Let’snotplaygameswithsemantics.**T…

    2022年8月27日
    18
  • POJO简介

    POJO简介POJO 一:什么是POJOPOJO的名称有多种,pureoldjavaobject、plainordinaryjavaobject等。按照MartinFowler的解释是“PlainOldJavaObject”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框…

    2022年5月28日
    36
  • 国内不用备案的cdn_2018年广电总局电影备案查询

    国内不用备案的cdn_2018年广电总局电影备案查询随着行业老大哥百度云加速的CDN关闭,不,不能说是关闭,是不再面向国外用户(实则是不再面向未备案中国用户),喜欢简单而快捷方式的草根大佬们不知道该何去何从,特别是用习惯了CDN的大佬,更是讨厌裸奔的感觉,没了层CDN,还真就觉得不安全了!事实上,CDN确实让我们的网站加速了不少,当然,排除那些劣质的CDN,有人可能会感觉不用CDN自己的网站反而会快很多,这个是错误的认知,你的网站访问不大的…

    2025年10月21日
    2

发表回复

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

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