PHP二維數組排序(感謝滔哥)

來源:互聯網
上載者:User

標籤:==   order   二維   str   ++   type   title   constant   排序   

滔哥原創
/*                    _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;    }
 /**    * 冒泡排序,如果二維數組中的元素不一致,可以使用次方法   add by  wangt    *  $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二維數組排序(感謝滔哥)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.