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执行速度全攻略(上)
Oct 09 PHP
Php做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
Apr 24 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 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
用PHP4访问Oracle815
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
js实现的倒计时按钮实例
2015/06/24 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
工程造价专业大学生自荐信
2013/10/01 职场文书
旅游网创业计划书
2014/01/31 职场文书
酒店管理求职信范文
2014/04/06 职场文书
九一八事变演讲稿
2014/09/05 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
三八妇女节主持词
2015/07/04 职场文书
宪法宣传标语100条
2019/10/15 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python