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+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
php adodb操作mysql数据库
Mar 19 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
Jan 03 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
浅析PHP中Session可能会引起并发问题
Jul 23 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP数组array类常见操作示例
May 15 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
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python绘制3D图形
2018/05/03 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
Python中安装easy_install的方法
2018/11/18 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python爬取招聘要求等信息实例
2020/11/20 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
如何使用PHP session
2015/04/21 面试题
linux面试题参考答案(7)
2014/07/24 面试题
25道Java面试题集合
2013/05/21 面试题
会计职业生涯规划范文
2014/01/04 职场文书
单位消防安全制度
2014/01/12 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android