本文实例讲述了PHP实现二维数组根据key进行排序的方法。分享给大家供大家参考,具体如下:

在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果;但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现。下面就讲述一下如何实现二维数组根据key进行排序。

实现方法:

/**

* =======================================

* 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 按key大小排序,PHP实现二维数组根据key进行排序的方法相关推荐

  1. java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法

    本文实例讲述了PHP实现二维数组按某列进行排序的方法.分享给大家供大家参考,具体如下: /* * 二维数组 按某列排序 * array_multisort($arr1,$arr2) * 手册 例子如下 ...

  2. php按照二维数组某个字段排序,PHP 二维数组根据某个字段排序

    /** * 二维数组根据某个字段排序 * 功能:按照用户的年龄倒序排序 * @author xiaophp.cn */ $arrUsers = array( array( 'id' => 1, ...

  3. mysql日期排序YMD_php将二维数组按日期(支持Ymd和Ynj格式日期)排序

    思路: 将所有日期转化成时间戳保存在新数组里面(新数组1和新数组2), 将新数组2排序, 再将新数组2中的元素逐个查找在数组1中的索引, 根据索引将原始数组重新排序, 最终得到排序后的二维数组. - ...

  4. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  5. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  6. PHP 二维数组根据另一个二维数组的值进行排序

    PHP 二维数组根据另一个二维数组的值进行排序 二维数组根据另一个二维数组的某个值进行排序 例子:有以下两个二维数组 goods:道具数组,记录了道具id.道具名称.道具价值 goodsUseTime ...

  7. 二维数组的冒泡/选择排序(两种实现方法)

    一.思路 1.降维排序 一种思路是先将二维数组转化为一维数组,再利用一维数组的排序算法进行排序,最后转换回二维数组. 2.指针运算 另一种思路是直接对二维数组进行排序,利用二维数组在内存中是顺序排放的 ...

  8. 【原】动态申请二维数组并释放的三种方法

    在C++中实现变长数组 一般来说,有三种方法来申请多维数组:C的malloc/Free    C++的new/delete    STL容器Vector 1.变长一维数组 这里说的变长数组是指在编译时 ...

  9. php 二维数组 去重复,php二维数组合并及去重复的方法

    这篇文章主要介绍了php二维数组合并及去重复的方法,实例分析了php合并数组与删除重复项的技巧,需要的朋友可以参考下 本文实例讲述了php二维数组合并及去重复的方法.分享给大家供大家参考.具体实现方法 ...

最新文章

  1. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数
  2. 20162304 实验三
  3. arg是什么函数_怎么实现边听歌边搜图?线程初体验:常用函数
  4. Java经典面试题一
  5. CAN总线技术 | 数据链路层03 - CAN总线竞争与仲裁机制
  6. Python:Anaconda安装虚拟环境到指定路径
  7. extjs $ 美元符号修改
  8. 傅里叶变换 c语言程序,(快速傅里叶变换)C语言程序汇编
  9. oj运行时错误_FME服务器链接运行时错误(由于缺少适当的权限,用户未授权的请求)...
  10. 史上首个人脸识别禁令出台,警察用来抓罪犯也不行!旧金山可真行
  11. matlab仿真二元等幅边射阵,MATLAB仿真天线阵代码.doc
  12. Java内存模型与共享变量可见性
  13. 风变科技公司的python小课_风变编程Python小课最近很火,大家学完感受如何?
  14. i2c驱动之调用ioctl函数进行读写at24c08
  15. Word 内容被锁定的两种解决方法
  16. PBS常用基本命令------PBS入门
  17. word的常见问题及解决办法
  18. 微信小程序刷新当前页面
  19. Android实现蝴蝶动画,Android中的动画具体解释系列【2】——飞舞的蝴蝶
  20. 网络基础——网络传输基本流程

热门文章

  1. 结构体01:结构体的定义和使用
  2. [BZOJ1934][Shoi2007]Vote 善意的投票[最小割]
  3. Stack Overflow监控系统内部架构初探
  4. Ethernet、VLAN、QinQ
  5. Django 模板中变量、过滤器、标签的使用方法
  6. 【李宏毅2020 ML/DL】P74 Generative Adversarial Network | Basic Idea
  7. 构造一个简单的神经网络,以DQN方式实现小游戏的自动控制
  8. Java 基础【13】 I/O流概念分析整理
  9. 【Oracle学习笔记-4】内连接和外连接的区别
  10. 基于FPGA实现uart串口模块(Verilog)--------发送模块及整合