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
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
PHP中redis的用法深入解析
Feb 20 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php实现的SESSION类
Dec 02 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
浅谈php提交form表单
Jul 01 PHP
Zend Studio使用技巧两则
Apr 01 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
PHP实现一个多功能购物网站的案例
Sep 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
微信公众平台开发之天气预报功能
2015/08/31 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python笔试面试题小结
2019/09/07 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
办公室助理岗位职责
2013/12/25 职场文书
企业安全生产责任书
2014/04/14 职场文书
家长写给孩子的评语
2014/04/18 职场文书
园林系毕业生求职信
2014/06/23 职场文书
重阳节活动主持词
2015/07/04 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
JavaScript原型链详解
2021/11/07 Javascript