登录  /  注册

php中13个数组排序函数 的介绍

不言
发布: 2018-07-23 11:59:04
原创
1668人浏览过

这篇文章给大家分享的内容是关于php数组排序函数 ,有一定的参考价值,有需要的朋友可以参考一下。

  • 函数中有u的,能自定义比较函数;有k的,按照键来排序;有r(reverse)的,倒序;有a(association)的,一定是键值关联,除了rsort() usort() sort() shuffle(),其他没有a的都是键值关联,array_multisort()键值关联的保持,数字类型的不保持。

  • 下列的所有排序函数都是直接作用于数组本身, 而不是返回一个新的有序的数组。

  • 以下函数对于数组中相等的元素,它们在排序后的顺序是未定义的。 (也即相等元素之间的顺序是不稳定的,即具有相同值的元素每次排序的结果都是不确定(关联数组))。php7asort arsort uasort已实现稳定排序,php5稳定排序:http://php.net/manual/zh/func...

  • 在对含有混合类型值的数组排序时要小心,因为 sort() 可能会产生不可预知的结果。

1.array_multisort

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

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
登录后复制

排序类型标志:

  • SORT_REGULAR (默认)- 将项目按照通常方法比较(不修改类型,区分大小写,大写字母会排在小写字母之前)

  • SORT_NUMERIC - 按照数字大小比较

  • SORT_STRING - 按照字符串比较(区分大小写)

  • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。

  • SORT_NATURAL - 以字符串的"自然排序",类似 natsort()

  • SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。

  • 1.1 如果有多个数组参数时, $array2会根据$array1的结果排序,像MySQL的group by

  • 1.2 不区分大小写的排序:

$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array); // 先复制一个转为小写数组

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);   // 先对小写数组排序,再排序原数组

print_r($array);
登录后复制
  • 1.3 对数据库结果进行排序

function array_orderby()
{
    $args = func_get_args();
    $data = array_shift($args);
    foreach ($args as $n => $field) {
        if (is_string($field)) {
            $tmp = array();
            foreach ($data as $key => $row)
                $tmp[$key] = $row[$field];
            $args[$n] = $tmp;
            }
    }
    $args[] = &$data;
    call_user_func_array('array_multisort', $args);
    return array_pop($args);
}
登录后复制

2.sort

  • 删除原有的键名对数组排序(顺序)

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制
  • sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);排序结果和natcasesort()一样。

3.rsort

  • 对数组逆向排序

bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制

4.asort

  • 保持键值关联(association)。主要用于对那些单元顺序很重要的结合数组进行排序。

bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制

5.arsort

  • 倒序并保持索引关系(association,reverse)

bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制

6.ksort

  • 键名排序

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制

7.krsort

  • 键名倒序

bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
登录后复制

8.usort

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

bool usort ( array &$array , callable $value_compare_func )
登录后复制
  • $value_compare_func( mixed $a, mixed $b ) $a小于,等于或大于$b时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。

  • usort($a, array("TestObj", "cmp_obj"))对象属性排序

9.uasort

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

bool uasort ( array &$array , callable $value_compare_func )
登录后复制

10.uksort

  • 使用用户自定义的比较函数对数组中的键名进行排序

bool uksort ( array &$array , callable $key_compare_func )
登录后复制

11.natcasesort

  • 不区分大小写字母的自然排序(排完字母再排数字),保持键值关联

bool natcasesort ( array &$array )
登录后复制

12.natsort

  • 用“自然排序”算法对数组排序,保持键值关联

bool natsort ( array &$array )
登录后复制

13.shuffle

  • 本函数打乱(随机排列单元的顺序)一个数组。键值不关联

bool shuffle ( array &$array )
登录后复制

相关推荐:

PHP中10种字符串常用函数介绍以及使用方法                 

以上就是php中13个数组排序函数 的介绍的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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