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模板,主要想体现一下思路
Dec 25 PHP
php5.3 注意事项说明
Jul 01 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
跟我学Laravel之快速入门
Oct 15 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
laravel5表单唯一验证的实例代码
Sep 30 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
php的一个简单加密解密代码
2014/01/14 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python 系统调用的实例详解
2017/07/11 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python基础教程项目三之万能的XML
2018/04/02 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python中偏函数用法示例
2018/06/07 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
python调用自定义函数的实例操作
2019/06/26 Python
python小程序实现刷票功能详解
2019/07/17 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
《钱学森》听课反思
2014/03/01 职场文书
关爱老人标语
2014/06/21 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Python极值整数的边界探讨分析
2021/09/15 Python
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android