PHP實現(xiàn)二維數(shù)組按某列進行排序的方法
本文實例講述了PHP實現(xiàn)二維數(shù)組按某列進行排序的方法。分享給大家供大家參考,具體如下:
/* * 二維數(shù)組 按某列排序 * array_multisort($arr1,$arr2) * 手冊 例子如下 * */ $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); // 取得列的列表 foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // 將數(shù)據(jù)根據(jù) volume 降序排列,根據(jù) edition 升序排列 // 把 $data 作為最后一個參數(shù),以通用鍵排序 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); /*************************************/ /* 從上面的例子不難看出,array_multisort()函數(shù) * 是將每一個二維數(shù)組的列作為 一個參數(shù)進行排序 * 來達到整個數(shù)組的排序 */ /*************************************/ function sigcol_arrsort($data,$col,$type=SORT_DESC){ if(is_array($data)){ $i=0; foreach($data as $k=>$v){ if(key_exists($col,$v)){ $arr[$i] = $v[$col]; $i++; }else{ continue; } } }else{ return false; } array_multisort($arr,$type,$data); return $data; } print_r(sigcol_arrsort($data,'edition',SORT_DESC)); /*說白了 原理就是: 新數(shù)組 原二維數(shù)組 2 array('volume' => 67, 'edition' => 2); 1 array('volume' => 86, 'edition' => 1); 6 array('volume' => 85, 'edition' => 6); 2 array('volume' => 98, 'edition' => 2); 6 array('volume' => 86, 'edition' => 6); 7 array('volume' => 67, 'edition' => 7); 這兩個數(shù)組的每一行都鎖在一起,新數(shù)組一旦變動順序, 那么就會連帶每一行的二維數(shù)組也跟著變換順序 ,即新數(shù)組為參照物 相當于查詢子句中的 order by */
運行結(jié)果:
Array ( [0] => Array ( [volume] => 67 [edition] => 7 ) [1] => Array ( [volume] => 85 [edition] => 6 ) [2] => Array ( [volume] => 86 [edition] => 6 ) [3] => Array ( [volume] => 67 [edition] => 2 ) [4] => Array ( [volume] => 98 [edition] => 2 ) [5] => Array ( [volume] => 86 [edition] => 1 ) )
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP針對XML文件操作技巧總結(jié)》、《PHP錯誤與異常處理方法總結(jié)》、《PHP運算與運算符用法總結(jié)》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php實現(xiàn)的統(tǒng)計字數(shù)函數(shù)定義與使用示例
這篇文章主要介紹了php實現(xiàn)的統(tǒng)計字數(shù)函數(shù)定義與使用方法,結(jié)合實例形式分析了php針對字符串的統(tǒng)計運算相關(guān)操作技巧,需要的朋友可以參考下2017-07-07讓php處理圖片變得簡單 基于gb庫的圖片處理類附實例代碼下載
讓php處理圖片變得簡單 基于gb庫的圖片處理類附實例代碼下載,需要的朋友可以參考下。2011-05-05PHP下利用header()函數(shù)設(shè)置瀏覽器緩存的代碼
PHP高級應(yīng)用學(xué)習筆記之 利用header()函數(shù)設(shè)置瀏覽器緩存2010-09-09PHP實現(xiàn)基于面向?qū)ο蟮膍ysqli擴展庫增刪改查操作工具類
這篇文章主要介紹了PHP實現(xiàn)基于面向?qū)ο蟮膍ysqli擴展庫增刪改查操作工具類,結(jié)合實例形式分析了mysqli增刪改查操作類的封裝與使用技巧,需要的朋友可以參考下2017-07-07學(xué)習php設(shè)計模式 php實現(xiàn)工廠模式(factory)
這篇文章主要介紹了php設(shè)計模式中的工廠模式,使用php實現(xiàn)工廠模式,感興趣的小伙伴們可以參考一下2015-12-12php中json_encode處理gbk與gb2312中文亂碼問題的解決方法
這篇文章主要介紹了php中json_encode處理gbk與gb2312中文亂碼問題的解決方法,需要的朋友可以參考下2014-07-07