array_multisort 使用笔记

云计算扫地僧
• 阅读 6639

一开始遇到array_multisort 这个函数时,看手册 怎么就是看不懂,很不理解。后来在网上看了很多的例子 才慢慢理解一点。现在记下来,留着用。

一,一维数组排序

$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);

结果:

Array(
[0] => Bear
[1] => Cat
[2] => Dog
[3] => Horse
[4] => Zebra)

上面就是按照普通的字母升序排列(A,B,C,D...),没什么好讲的

二,多个一维数组排序

$ar1 = array(22,12,3);
$ar2 = array(1,3,7);
array_multisort($ar1, $ar2);
echo '<pre>';
print_r($ar1);
print_r($ar2);

结果:

Array(
    [0] => 3
    [1] => 12
    [2] => 22
)
Array
(
    [0] => 7
    [1] => 3
    [2] => 1
)    

$ar1和$ar2的数据可以看成一个表 如下:
array_multisort 使用笔记

$ar1和$ar2分别为列名,然后如sql语句一样select * from table order by $ar1 asc ,$ar2 asc 排序即可

三,多维数组排序

通常我们从数据库取出来的

$data=array(
    array('id' => 67, 'score' => 20,'name'=>'小明'),
    array('id' => 86, 'score' => 10,'name'=>'小红'),
    array('id' => 85, 'score' => 60,'name'=>'小花')
); 
  
foreach ($data as $key => $row) {
    $id[$key]  = $row['id'];
    $score[$key] = $row['score'];
}
array_multisort($id, SORT_ASC, $data);
echo "<pre>";
print_r($data);

结果:

    Array
    (
        [0] => Array
        (
            [id] => 67
            [score] => 2
            [name] => 小明
        )

        [1] => Array
        (
            [id] => 85
            [score] => 6
            [name] => 小花
        )
        [2] => Array
        (
            [id] => 86
            [score] => 1
            [name] => 小红
        )
    )

此时,把id,score,name看成列名称如图
array_multisort 使用笔记

如果想按照某个字段排序 ,先循环获取到所有该字段的值形成一个数组,然后按照该字段排序即可。然后如sql语句一样select * from table order by $id asc 排序即可

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
捉虫大师 捉虫大师
4年前
刚出炉的《Java开发手册黄山版》,我帮你们圈出了改动点!
hello大家好,我是小楼相信写Java的同学应该都听过阿里巴巴的《Java开发手册》吧?我一开始写Java时,也读过这个手册,里面有很多关于代码格式,代码规约的正例、反例,简直就是居家旅行必备的手册。比如我印象中最深刻的是关于三目运算可能导致空指针的例子,我记得当时为了理解这个例子,还去查看了反编译的class文件:【强制】三目运算符condition
Stella981 Stella981
4年前
PHP使用array_unique对二维数组去重处理
array\_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array\_unique对二维数组去重处理例子。php5.2.9版本增加了array\_unique对多维数组的支持,在处理多维数组是需要设置sort\_flags参数一维数组的重复项:使用array\_unique函数即可,使用实例如下:
Stella981 Stella981
4年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
4年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
4年前
Lua5.3 笔记
Lua5.3笔记最近用skynet,sproto通讯,完全看不懂通讯二进制是怎么写的,发现都是string这个,string那个,完全理解不来。于是查了一下string.pack的api,和之前别的语言里面用的writeByte,writeShort,writeUnsignedInt这样的写法完全是不一样的。然后在此记录
Stella981 Stella981
4年前
Quick Sort(三向切分的快速排序)(Java)
1//三向切分的快速排序2//这种切分方法对于数组中有大量重复元素的情况有比较大的性能提升34publicstaticvoidmain(Stringargs)5{6ScannerinputnewScanner(System.in);7
Wesley13 Wesley13
4年前
ES6之路第三篇:字符串的扩展
字符的Unicode表示法1"\u{20BB7}"2//"𠮷"34"\u{41}\u{42}\u{43}"5//"ABC"67lethello123;8hell\u{6F}//123910'\u{
Stella981 Stella981
4年前
PHP array_multisort() 函数
写了这么多年PHP,才刚发现array_multisort()这个函数。当然,你也可以点这里(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.w3school.com.cn%2Fphp%2Ffunc_array_multisort.asp)看手册里的介绍,不过我个人觉得
Stella981 Stella981
4年前
Android默认字体ASCII码中可显示字符的平均灰度由小到大排序
如题:46,96,39,58,45,44,59,34,95,126,33,94,105,114,124,47,73,61,60,62,42,108,92,49,116,43,106,63,118,41,40,76,102,123,55,125,74,84,99,120,122,93,91,117,110,115,89,111,70,121,101,50,
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这