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 接口类与抽象类的实际作用
Nov 26 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
如何用php获取文件名后缀
Jun 09 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 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正则提取或替换img标记属性
2013/06/26 PHP
关于php循环跳出的问题
2013/07/01 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
python pillow库的基础使用教程
2021/01/13 Python
自我评价范文
2013/12/22 职场文书
入党积极分子介绍信
2014/01/17 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
美术教师岗位职责
2014/03/18 职场文书
个人贷款担保书
2014/04/01 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
MySQL批量更新不同表中的数据
2022/05/11 MySQL