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 相关文章推荐
DedeCms模板安装/制作概述
Mar 11 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
用PHP程序实现支持页面后退的两种方法
Jun 30 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
php动态函数调用方法
May 21 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
简单谈谈 php 文件锁
Feb 19 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 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网页显示各种语法错误
2013/09/23 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
php实现点击可刷新验证码
2015/11/07 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
详解Vue方法与事件
2017/03/09 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
python生成excel的实例代码
2017/11/08 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
使用python接入微信聊天机器人
2020/03/31 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
市场调查策划方案
2014/06/10 职场文书
人大代表选举标语
2014/10/07 职场文书
2014年社区工作总结
2014/11/18 职场文书
2015年推普周活动方案
2015/05/06 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
高中语文教学反思范文
2016/02/16 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书