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 输出缓存详解
Jun 20 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php文件上传简单实现方法
Jan 24 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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文章按日期(月日)SQL归档语句
2012/11/29 PHP
WAF的正确bypass
2017/01/05 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
修改发贴的编辑功能
2007/03/07 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
js中日期的加减法
2015/05/06 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
彻彻底底地理解Python中的编码问题
2018/10/15 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
市场营销职业生涯规划书范文
2014/01/12 职场文书
公开承诺书格式
2014/05/21 职场文书
研究生个人学年总结
2015/02/14 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
公司借款担保书
2015/09/22 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python