滔哥原创

/*
_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二维数组排序(感谢滔哥lvtao.net)的更多相关文章

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

    滔哥原创 /* _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. 170817、Nginx详细配置

    Nginx能做什么 nginx主要是做转发,当然也可以做静态资源文件缓存,做转发的时候,比如你有几个url,可以统一通过走nginx,然后通过nginx转发到不同的url上 1.反向代理 反向代理应该 ...

  2. Equinox P2 介绍(一)Getting Start

    一直觉得 Equinox 的 P2 是个神秘的东西,常常使得 Eclipse 或 Equinox 表现出一些奇怪的行为,于是找来官方文档读一读,试图更好地理解与应用 Equinox . 官方文档很多, ...

  3. 分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?

    过去两年,我的主要工作都在Hadoop这个技术栈中,而最近有幸接触到了Ceph.我觉得这是一件很幸运的事,让我有机会体验另一种大型分布式存储解决方案,可以对比出HDFS与Ceph这两种几乎完全不同的存 ...

  4. TOP100summit:【分享实录-封宇】58到家多端消息整合之路

    本篇文章内容来自2016年TOP100summit 58到家架构师封宇的案例分享. 编辑:Cynthia 2017年11月9-12日北京国家会议中心第六届TOP100summit,留言评论有机会获得免 ...

  5. 卿学姐与公主 UESTC - 1324 分块模板题

    题意:http://acm.uestc.edu.cn/#/problem/show/1324 中文题,自己看喽. 题解:分块模板,update时顺便更新块属性.ask时先判掉belong[l]==be ...

  6. 拓扑_dfs——找最小环

    今天在题库发现了一个wa了很久还没调过的题,这个题呢是2015年noip的day1t2,莫名感觉难度上升(其实水的一匹). 这道题输出是3,其实就是一个图中让你找最小环,尽管我不会找环,但是要是我的话 ...

  7. Python模块:配置文件解析器configparser

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...

  8. PHP 常用命令行

    1.PHP运行指定文件 php -f test.php (-f 可省略) 2.命令行直接运行PHP代码 php -r "phpinfo();" 如果结果太长,还可以 php -r ...

  9. 1025 PAT Ranking[排序][一般]

    1025 PAT Ranking (25)(25 分) Programming Ability Test (PAT) is organized by the College of Computer S ...

  10. pem转pfx

    openssl req -new -key privkey.pem -out root.csr openssl x509 -req -days -sha1 -extensions v3_ca -sig ...