php--多维数组排序函数array_multisort

本文介绍PHP中array_multisort函数的使用方法,通过示例演示如何对多维数组进行排序,包括按不同字段升序或降序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:对多维数组进行排序,类似于sql中的order by 作用。

用途:将数据库中的想要的数据全部取出,然后做类似于order by 的动作,(可能比数据库排序效率高点,不太了解)

函数使用格式:  array_multisort($arr1,[$sort_order,$sort_type],[$arr2,...]);

参数含义: 

  • $arr1,$arr2为待排序的数组;
  • $srot_order为排序的顺序,SORT_ASC 或者SORT_DESC中二选一,默认为SORT_ASC;
  • $sort_type为排序的类型SORT_REGULAR、SORT_NUMERIC、SORT_STRING。
  • $arr1为主要排序的数组,在此数组中有重复值时,才按照后边数组排序,

     其中:

  1. SORT_REGULAR 表示正常排序,即不改变原来的数据类型,数字就按大小排,字符就按  ASCII排序,一般情况字符类型在前,数字类型在后,默认为此类型,
  2.  SORT_NUMERIC按数字大小排序,
  3. SORT_STRING按字符排序,从左到右按ASCII比较,即'10'<'a'、'ADC'<'AoE'、'100'<'11',

注: 

  1. $arr1 、$arr2 ...每个都可以指定自己的排序顺序和类型,
  2.   $arr1、$arr2... 可以看作数据表中的一个字段列,排序顺序为从左到右,左边数组中值相同时,才按下个数组排序。

使用案列: 

<pre name="code" class="php">//自定义函数,处理数据,以便使用array_multisort 排序;
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){   
        if(is_array($arrays)){   
            foreach ($arrays as $array){   
                if(is_array($array)){   
                    $key_arrays[] = $array[$sort_key];   
                }else{   
                    return false;   
                }   
            }   
        }else{   
            return false;   
        }  
        array_multisort($key_arrays,$sort_order,$sort_type,$arrays);   
        return $arrays;   
    }  
  $person =  array(  
                    array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),  
                    array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150),  
                    array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156),  
                    array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190),  
                    array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200),  
                    array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110),  
                    array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170)  
                );  
      //排序前
    var_dump($person);  
    //按name排序
    $person = my_sort($person,'name',SORT_ASC,SORT_STRING);  
    //排序后
    var_dump($person);      
    //按weight排序
    $person = my_sort($person,'weight');  
    var_dump($person); 

 

 
 
 

另外,利用foreach变量,自定义函数也可实现此类排序。

array_multisort 官方使用文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值