滔哥原创

/*
_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. 1.NET是什么

  2. 智能机器人chatbot论文集合

    机器不学习 jqbxx.com-专注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱 今年开始接触chatbot,跟着各种专栏学习了一段时间,也读了一些论文,在这里汇总一下.感 ...

  3. Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS 对比

    系统整体对比 对比说明 /文件系统 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 开发语言 C++ C Perl C C C++ 开源协议 GPL V2 GP ...

  4. android EditText与TextView几个常用的属性

    android:maxLength="100"输入框最多输入的字数. android:maxEms="10"每行最多输入字符个数 android:textcol ...

  5. MySQL复制相关变量

    server_id是必须设置在master和每个slave上的唯一标识ID,其取值范围 是1~4294967295之间,且同一个复制组之内不能重复 server_uuid:server_uuid会在G ...

  6. ASP.NET Core Web APi获取原始请求内容

    前言 我们讲过ASP.NET Core Web APi路由绑定,本节我们来讲讲如何获取客户端请求过来的内容. ASP.NET Core Web APi捕获Request.Body内容 [HttpPos ...

  7. 序列化日期(yyyy-MM-dd hh:mm:ss)

    var getDateFormat = function() { var _date = new Date(); //实例化一个Date对象 var _complete = function(valu ...

  8. 19_Python元组总结

    元组 1 元组:不可变的容器,一旦初始化就不能更改,有索引:可以查,不能增,改,删除单个元素:可遍历,不能排序 2 当元组元素,只有一个的时候,需要在元素后加",",否则回当()运 ...

  9. windows下安装Python2和Python3共存

    一.Python安装 1.下载安装包 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi # 2.7安装包 https:/ ...

  10. WPF: 只读依赖属性的介绍与实践

    在设计与开发 WPF 自定义控件时,我们常常为会控件添加一些依赖属性以便于绑定或动画等.事实上,除了能够添加正常的依赖属性外,我们还可以为控件添加只读依赖属性(以下统称"只读属性" ...