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获取远程图片并把它保存到本地的代码
Apr 07 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
php中{}大括号是什么意思
Dec 01 PHP
浅析php数据类型转换
Jan 09 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
微信小程序发送订阅消息的方法(php 为例)
Oct 30 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 ajax 分页类代码
2008/11/13 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP进程同步代码实例
2015/02/12 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
php数据访问之查询关键字
2016/05/09 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
TensorBoard 计算图的查看方式
2020/02/15 Python
python数据抓取3种方法总结
2021/02/07 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
医护人员英文求职信范文
2013/11/26 职场文书
木工主管岗位职责
2013/12/08 职场文书
毕业生自荐书
2014/02/02 职场文书
家长对老师的感言
2014/03/11 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
工作年限证明模板
2014/11/01 职场文书
初婚初育证明范本
2015/06/18 职场文书
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS