滔哥原创

/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/
array(array(),array()); $arr1=array(array('itemid'=> 226,'title'=> '四中附近有一大厅出租','edittime'=> 1409387090),
array('itemid'=> 311,'title'=> '四中西邻文华园小区楼房出租','edittime'=> 1409272174),
array('itemid'=> 312,'title'=> '四中西邻文华园小区楼房出租2','edittime'=> 1409272074),
array('itemid'=> 313,'title'=> '四中西邻文华园小区楼房出租3','edittime' => 1409271174)
); $arr2=array(array('itemid'=> 226,'title'=> '四中附近有一大厅出租12','edittime'=> 1409287090),
array('itemid'=> 314,'title'=> '四中西邻文华园小区楼房出租12','edittime'=> 1409172174),
array('itemid'=> 310,'title'=> '四中西邻文华园小区楼房出租312','edittime' => 1309271174)
);
$b=mylist(array_merge($arr1,$arr2)); print_r($b); function mylist($array){
$arr=array();
$list=array();
foreach($array as $v){
$arr[$v['itemid']]=$v['edittime'];
$list[$v['itemid']]=$v;
}
arsort($arr);
$newarr=array();
foreach($arr as $k=>$v){
$newarr[]=$list[$k];
}
return $newarr;
}

本人需求更改

/**
* 按照指定键名对二维数组排序
* $array 传过来的数组
* $key 指定的键名
* $type 指定的排序类型 asc 升序,desc 降序
*/
function orderArray($array = array() ,$key = 'id', $type = 'asc')
{
$arr = array();
$list = array();
foreach($array as $v){
$arr[$v[$key]] = $v[$key];
$list[$v[$key]] = $v;
}
if($type == 'asc'){
asort($arr);
}else{
arsort($arr);
} $newarr =array();
foreach($arr as $k => $v){
$newarr[] =$list[$k];
}
return $newarr;
}
 /**
* 冒泡排序,如果二维数组中的元素不一致,可以使用次方法
* $arr 要排序的数组
* $key 指定要排序的字段
*/
function interpretSort( $arr = array() ,$key = 'order')
{
$count = count($arr);
if( $count <= 0 ) return false;
for( $i = 0; $i < $count; $i ++ ){
for( $j = $count - 1; $i < $j; $j --){
if( $arr[$j][$key] < $arr[$j-1][$key] ){
//交换相邻位置的值
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
}
}
}
return $arr;
}

简单的二维数组按照指定字段排序

echo "<pre>";
$arr=array(
'aaa'=>array(
'age'=>32,
'name'=>'张三'
),
'bbb'=>array(
'age'=>12,
'name'=>'李四'
),
'ccc'=>array(
'age'=>25,
'name'=>'赵六'
)
);
function paixu($a,$b){
return $b['age']-$a['age'];
}
uasort($arr,'paixu');
print_r($arr);

要排序的key 有重复值

function RorderArray( $array = [], $key = '', $order = 'asc' ){
$sort = $order == 'asc' ? 'SORT_ASC' : 'SORT_DESC';
$arrSort = array();
foreach($array AS $uniqid => $row){
  foreach($row AS $k=>$value){
    $arrSort[$k][$uniqid] = $value;
  }
}
array_multisort($arrSort[$key], constant($sort), $array);
  return $array;
} 

PHP二维数组排序(感谢滔哥)的更多相关文章

  1. PHP二维数组排序(感谢滔哥lvtao.net)

    滔哥原创 /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\|| ...

  2. JS二维数组排序组合

    需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...

  3. PHP二维数组排序(list_order)

    /** * 对二维数组进行排序 * 模拟 数据表记录按字段排序 * * <code> * @list_order($list, $get['orderKey'], $get['orderT ...

  4. PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)

    一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...

  5. php基础篇-二维数组排序 array_multisort

    原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...

  6. PHP 二维数组排序保持键名不变

    对二维数组指定的键名排序,首先大家想到的是array_multisort函数,关于array_multisort的用法我之前也写了一篇废话不多言,我们看个实例: <?php $data = ar ...

  7. 一个不错的PHP二维数组排序函数简单易用存用

    一个不错的PHP二维数组排序函数简单易用存用 传入数组,传入排序的键,传入排序顺序 public function array_sort($arr,$keys,$type='asc') { $keys ...

  8. JS:二维数组排序和获取子级元素

    JS:二维数组排序和获取子级元素 1. 二维数组排序 1.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; 如果我们要按每个子数组的第一列来排序要如 ...

  9. php实现二维数组排序array_multisort($ages, SORT_DESC, $home)函数

    1.sql查询排序参数是order by,那么php进行排序呢 可以参考array_multisrot函数 //php进行二维数组排序 -xzz1009 foreach($home as $home) ...

随机推荐

  1. ASP.NET MVC5 中百度ueditor富文本编辑器的使用

    随着网站信息发布内容越来越多,越来越重视美观,富文本编辑就是不可缺少的了,众多编辑器比较后我选了百度的ueditor富文本编辑器. 百度ueditor富文本编辑器分为两种一种是完全版的ueditor, ...

  2. junit4X系列源码--Junit4 Runner以及test case执行顺序和源代码理解

    原文出处:http://www.cnblogs.com/caoyuanzhanlang/p/3534846.html.感谢作者的无私分享. 前一篇文章我们总体介绍了Junit4的用法以及一些简单的测试 ...

  3. java里程碑之泛型--擦除和转换

    在严格的泛型代码里,带泛型声明的类总应该带着泛型参数.但是为了和古老的java代码保持一致,也就是说为了向下兼容,也允许在使用带泛型声明的类时不指定实际的类型参数.如果没有为这个泛型类指定实际的参数类 ...

  4. 亲测可用的国内maven镜像

    maven作为一个项目管理工具确实非常好用,之前oschina的中央仓库可用,现在oschina的maven服务器关了,于是自己倒腾了一个nexus,苦于自己的服务器是入门级的,下载速度实在让人着急. ...

  5. Mac 管理员变为了普通用户怎么办?

    开机的时候一直按住 command+s 出现命令行终端的时候按照以下顺序输入命令: /sbin/mount -uw    回车rm var/db/.AppleSetupDone   回车 reboot ...

  6. join on用法

    内连接和外连接 内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录 内连接 内连接查询返回满足条件的所有记录,默认情况下没有指定任 ...

  7. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

  8. [SF] Symfony 组件 BrowserKit 原理

    直接看下面的注释中针对每一个文件的作用说明. <?php /** * BrowserKit - Make internal requests to your application. * * I ...

  9. svn一整套使用,从下载到整个服务器搭建完成的详细说明

    SVN服务器的本地搭建和使用 Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...

  10. MySQL死锁案例分析与解决方案

    MySQL死锁案例分析与解决方案 现象: 数据库查询: SQL语句分析:  mysql. 并发delete同一行记录,偶发死锁.   delete from x_table where id=?   ...