Php 数组排序之多维数组排序

php中文网
发布: 2016-06-23 13:46:09
原创
2634人浏览过

Php 数组排序之多维数组排序

php 中最强大的类型非数组莫属!任何类型的数据都可以用数组来存储。

项目开发中对数组排序已是家常便饭,本文主要是总结一些经验和方法以及它们的区别,供大家学习参考。

一维数组排序

a、sort 函数:

      本函数对数组值装换为整型并被从最低到最高重新安排,删除原有的键名。成功时返回 TRUE, 或者在失败时返回 FALSE.

b、asort 函数:

      本函数对数组进行低到高排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

c、arsort 函数:bool arsort ( array &$array [, int $sort_flags ] )

立即学习PHP免费学习笔记(深入)”;

     对数组进行逆向排序(高到低)并保持索引关系

立即学习PHP免费学习笔记(深入)”;

    本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

    成功时返回 TRUE, 或者在失败时返回 FALSE. 


多维数组排序

a、usort函数: bool usort ( array&$array , callback$cmp_function )

立即学习PHP免费学习笔记(深入)”;

    本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

     比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数

    此函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。

    成功时返回 TRUE, 或者在失败时返回 FALSE.

b、uasort 函数:bool uasort (array &$array , callback$cmp_function )

      uasort ? 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

立即学习PHP免费学习笔记(深入)”;

     本函数对数组排序并保持索引和单元之间的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

     比较函数是用户自定义的。

序列猴子开放平台
序列猴子开放平台

具有长序列、多模态、单模型、大数据等特点的超大规模语言模型

序列猴子开放平台 0
查看详情 序列猴子开放平台

    成功时返回 TRUE, 或者在失败时返回 FALSE. 

c、uksort 函数:bool uksort (array &$array , callback$cmp_function )

     本函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

   cmp_function 函数应接受两个参数,该参数将被 array 中的一对键名填充。

      比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

      成功时返回 TRUE, 或者在失败时返回 FALSE(本排序方法和 uasort 非常类似). 

c、array_multisort函数: bool array_multisort ( array$ar1 [, mixed$arg [, mixed$... [, array$... ]]] )

       可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。

      关联(string)键名保持不变,但数字键名会被重新索引。

      本函数的参数结构有些不同寻常,但是非常灵活。

      第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。

      排序顺序标志: 

      ?SORT_ASC - 按照上升顺序排序 

      ?SORT_DESC - 按照下降顺序排序 

     排序类型标志: 

     ?SORT_REGULAR - 将项目按照通常方法比较 

     ?SORT_NUMERIC - 将项目按照数值比较 

     ?SORT_STRING - 将项目按照字符串比较 每个数组之后不能指定两个同类的排序标志。

     每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。


uasort 排序学习案例:

/* 多维数组排序 */$arr_more = array(         array(1,'age'=> 12,'name' => 'wzq'),         array(2,'age'=> 42,'name' => 'eee'),         array(9,'age'=> 82,'name' => '22'),         array(4,'age'=> 162,'name' => 'ff'),         array(6,'age'=> 2,'name' => 'jj'),         array(17,'age'=> 52,'name' => 'nn'));uasort($arr_more,function($x,$y){     //age从大到小      return $x['age'] < $y['age'];});var_dump($arr_more);
登录后复制

以上本文就是这些,知识点摘自 php学习手册。抛砖引玉,希望对大家有所帮助!


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号