PHP 二维数组排序

本文介绍了如何使用PHP的array_multisort()函数对二维数组进行排序,特别是根据特定字段实现降序排列。该函数允许对多个数组进行排序,并在主要数组的元素相同时,依据后续数组的值进行排序。排序标志包括SORT_ASC(升序)和SORT_DESC(降序),以及SORT_REGULAR、SORT_NUMERIC和SORT_STRING等排序类型。

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

二维数组 根据某个字段排序(降序)

$data =array(array('id'=>1,'name'=>'小明'),array('id'=>2,'name'=>'小红');
$datas = sort_arr($data,'id');

print_r($datas);
function sort_arr($arr,$val) { 

   $count = count($arr); 

      if($count <= 0)
      {
          return false;
      }
      for($i=0;$i<$count;$i++)
        {
            for($j=0;$j<$count-1;$j++)
            {
                if($arr[$j][$val] < $arr[$j+1][$val])
                {
                    foreach ($arr[$j] as $key=>$temp)
                    {
                        $t=$arr[$j+1][$key];
                        $arr[$j+1][$key]=$arr[$j][$key];
                        $arr[$j][$key]=$t;
                    }
                }
            }
        }
         return $arr;
  }

function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$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;   
    }  

array_multisort() 函数对多个数组或多维数组进行排序。

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY
子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一: •SORT_ASC - 默认,按升序排列。(A-Z) •SORT_DESC - 按降序排列。(Z-A)

随后可以指定排序的类型:

•SORT_REGULAR - 默认。将每一项按常规顺序排列。
•SORT_NUMERIC - 将每一项按数字顺序排列。
•SORT_STRING - 将每一项按字母顺序排列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值