PHP实现二维数组根据key进行排序的方法


Posted in PHP onDecember 30, 2016

本文实例讲述了PHP实现二维数组根据key进行排序的方法。分享给大家供大家参考,具体如下:

在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果;但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现。下面就讲述一下如何实现二维数组根据key进行排序。

实现方法:

<?php
/**
 * =======================================
 * Created by Zhihua_W.
 * Author: Zhihua_W
 * Date: 2016/11/26 0002
 * Time: 下午 2:43
 * Project: PHP开发小技巧
 * Power: 实现二维数组根据key进行排序
 * =======================================
 */
/**
 * 二维数组排序
 * @param array $arr 需要排序的二维数组
 * @param string $keys 所根据排序的key
 * @param string $type 排序类型,desc、asc
 * @return array $new_array 排好序的结果
 */
function array_sort($arr, $keys, $type = 'desc')
{
  $key_value = $new_array = array();
  foreach ($arr as $k => $v) {
    $key_value[$k] = $v[$keys];
  }
  if ($type == 'asc') {
    asort($key_value);
  } else {
    arsort($key_value);
  }
  reset($key_value);
  foreach ($key_value as $k => $v) {
    $new_array[$k] = $arr[$k];
  }
  return $new_array;
}
$arr = array(
  array(
    'name' => 'a',
    'sex' => 'm',
    'sort' => 5
  ),
  array(
    'name' => 'c',
    'sex' => 'm',
    'sort' => 8
  ),
  array(
    'name' => 'g',
    'sex' => 'm',
    'sort' => 3
  ),
  array(
    'name' => 'e',
    'sex' => 'w',
    'sort' => 6
  ),
  array(
    'name' => 'b',
    'sex' => 'w',
    'sort' => 2
  ),
);
//打印出原数组
print_r($arr);
//打印出排好序的数组
print_r(array_sort($arr,'name'));
?>

通过打印出的结果我们就可以看到,数组根据“name”进行排序。

//原数组
Array
(
  [0] => Array
    (
      [name] => a
      [sex] => m
      [sort] => 5
    )
  [1] => Array
    (
      [name] => c
      [sex] => m
      [sort] => 8
    )
  [2] => Array
    (
      [name] => g
      [sex] => m
      [sort] => 3
    )
  [3] => Array
    (
      [name] => e
      [sex] => w
      [sort] => 6
    )
  [4] => Array
    (
      [name] => b
      [sex] => w
      [sort] => 2
    )
)
//排序后数组
Array
(
  [2] => Array
    (
      [name] => g
      [sex] => m
      [sort] => 3
    )
  [3] => Array
    (
      [name] => e
      [sex] => w
      [sort] => 6
    )
  [1] => Array
    (
      [name] => c
      [sex] => m
      [sort] => 8
    )
  [4] => Array
    (
      [name] => b
      [sex] => w
      [sort] => 2
    )
  [0] => Array
    (
      [name] => a
      [sex] => m
      [sort] => 5
    )
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
社区(php&amp;&amp;mysql)五
Oct 09 PHP
第三节--定义一个类
Nov 16 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 #PHP
php mysql实现mysql_select_db选择数据库
Dec 30 #PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 #PHP
微信公众号模板消息群发php代码示例
Dec 29 #PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 #PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 #PHP
PHP实现的XML操作类【XML Library】
Dec 29 #PHP
You might like
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Scrapy框架使用的基本知识
2018/10/21 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python算法题 链表反转详解
2019/07/02 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
django中嵌套的try-except实例
2020/05/21 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
小学生打架检讨书
2014/01/26 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
安全保证书格式
2015/02/28 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
Nginx缓存设置案例详解
2021/09/15 Servers
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android