zoukankan      html  css  js  c++  java
  • PHP 二维数组根据某个字段排序

     1 <?php
     2 /**
     3  * 二维数组根据某个字段排序
     4  * 功能:按照用户的年龄倒序排序
     5  * @author ruxing.li
     6  */
     7 header('Content-Type:text/html;Charset=utf-8');
     8 $arrUsers = array(
     9     array(
    10             'id'   => 1,
    11             'name' => '张三',
    12             'age'  => 25,
    13     ),
    14     array(
    15             'id'   => 2,
    16             'name' => '李四',
    17             'age'  => 23,
    18     ),
    19     array(
    20             'id'   => 3,
    21             'name' => '王五',
    22             'age'  => 40,
    23     ),
    24     array(
    25             'id'   => 4,
    26             'name' => '赵六',
    27             'age'  => 31,
    28     ),
    29     array(
    30             'id'   => 5,
    31             'name' => '黄七',
    32             'age'  => 20,
    33     ),
    34 ); 
    35 
    36 
    37 $sort = array(
    38         'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
    39         'field'     => 'age',       //排序字段
    40 );
    41 $arrSort = array();
    42 foreach($arrUsers AS $uniqid => $row){
    43     foreach($row AS $key=>$value){
    44         $arrSort[$key][$uniqid] = $value;
    45     }
    46 }
    47 if($sort['direction']){
    48     array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
    49 }
    50 
    51 var_dump($arrUsers);
    52 
    53 /*
    54 输出结果:
    55 
    56 array (size=5)
    57   0 => 
    58     array (size=3)
    59       'id' => int 5
    60       'name' => string '黄七' (length=6)
    61       'age' => int 20
    62   1 => 
    63     array (size=3)
    64       'id' => int 2
    65       'name' => string '李四' (length=6)
    66       'age' => int 23
    67   2 => 
    68     array (size=3)
    69       'id' => int 1
    70       'name' => string '张三' (length=6)
    71       'age' => int 25
    72   3 => 
    73     array (size=3)
    74       'id' => int 4
    75       'name' => string '赵六' (length=6)
    76       'age' => int 31
    77   4 => 
    78     array (size=3)
    79       'id' => int 3
    80       'name' => string '王五' (length=6)
    81       'age' => int 40
    82 
    83 */
  • 相关阅读:
    redis基本命令1
    MySQL笔记01(黑马)
    尚硅谷Java——宋红康笔记【day25-day29】
    尚硅谷Java——宋红康笔记【day19-day24】
    Java网络编程实践
    框架高频面试题
    多线程面试题
    尚硅谷Java——宋红康笔记【day11-day18】
    尚硅谷Java——宋红康笔记【day6-day10】
    尚硅谷Java——宋红康笔记【day1-day5】
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/5583753.html
Copyright © 2011-2022 走看看