最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現(xiàn)二維數(shù)組按照指定的字段進行排序算法示例

 更新時間:2019年04月23日 14:24:41   作者:李維山  
這篇文章主要介紹了PHP實現(xiàn)二維數(shù)組按照指定的字段進行排序算法,涉及php針對數(shù)組的遍歷、排序等相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP實現(xiàn)二維數(shù)組按照指定的字段進行排序算法。分享給大家供大家參考,具體如下:

遇到問題:把兩個數(shù)組用php自帶的array_merge()函數(shù)合并之后,想按照兩個數(shù)組中共有的'post_time'字段為新數(shù)組進行排序

解決辦法:通過查閱官方手冊,得知有array_multisort()這個函數(shù),可以對多個數(shù)組或多維數(shù)組進行排序,返回排序之后的數(shù)組,其中字符串鍵名將被保留,但是數(shù)字鍵名將被重新索引,從 0 開始,并以 1 遞增。

下面封裝了這個函數(shù),便于調用:

/**
 * 二維數(shù)組按照指定字段進行排序
 * @params array $array 需要排序的數(shù)組
 * @params string $field 排序的字段
 * @params string $sort 排序順序標志 SORT_DESC 降序;SORT_ASC 升序
 */
function arraySequence($array, $field, $sort = 'SORT_DESC') {
 $arrSort = array();
 foreach ($array as $uniqid => $row) {
  foreach ($row as $key => $value) {
   $arrSort[$key][$uniqid] = $value;
  }
 }
 array_multisort($arrSort[$field], constant($sort), $array);
 return $array;
}
//測試:
$arrDemo = array(
array('name'=>'Jack','age'=>'22'),
array('name'=>'Tom','age'=>'24'),
array('name'=>'Green','age'=>'21'),
array('name'=>'Ben','age'=>'23'),);
$arrDemo = arraySequence($arrDemo,'age');
print_r($arrDemo);

運行結果:

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 24
        )

    [1] => Array
        (
            [name] => Ben
            [age] => 23
        )

    [2] => Array
        (
            [name] => Jack
            [age] => 22
        )

    [3] => Array
        (
            [name] => Green
            [age] => 21
        )

)

新增:按照指定的多個字段排序

/**
 * 二維數(shù)組按照指定的多個字段進行排序
 *
 * 調用示例:sortArrByManyField($arr,'id',SORT_ASC,'age',SORT_DESC);
 */
function sortArrByManyField(){
 $args = func_get_args();
 if(empty($args)){
  return null;
 }
 $arr = array_shift($args);
 if(!is_array($arr)){
  throw new Exception("第一個參數(shù)應為數(shù)組");
 }
 foreach($args as $key => $field){
  if(is_string($field)){
   $temp = array();
   foreach($arr as $index=> $val){
    $temp[$index] = $val[$field];
   }
   $args[$key] = $temp;
  }
 }
 $args[] = &$arr;//引用值
 call_user_func_array('array_multisort',$args);
 return array_pop($args);
}
//測試:
$arrDemo = array(
array('name'=>'Jack','age'=>'22'),
array('name'=>'Tom','age'=>'24'),
array('name'=>'Green','age'=>'21'),
array('name'=>'Ben','age'=>'23'),);
$arrDemo = sortArrByManyField($arrDemo,'age');
print_r($arrDemo);

運行結果:

Array
(
    [0] => Array
        (
            [name] => Green
            [age] => 21
        )

    [1] => Array
        (
            [name] => Jack
            [age] => 22
        )

    [2] => Array
        (
            [name] => Ben
            [age] => 23
        )

    [3] => Array
        (
            [name] => Tom
            [age] => 24
        )

)

PS:這里再為大家推薦一款關于排序的演示工具供大家參考:

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結》、《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》及《PHP常用遍歷算法與技巧總結

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • php項目中類的自動加載實例講解

    php項目中類的自動加載實例講解

    在本篇文章里小編給大家整理的是關于php項目中類的自動加載的實例內容以及相關代碼,需要的朋友們學習下。
    2019-09-09
  • Sorting Array Values in PHP(數(shù)組排序)

    Sorting Array Values in PHP(數(shù)組排序)

    有時候,你可能需要對數(shù)組內的值進行排序,那么就可以參考下面的文章。
    2011-09-09
  • php基于表單密碼驗證與HTTP驗證用法實例

    php基于表單密碼驗證與HTTP驗證用法實例

    這篇文章主要介紹了php基于表單密碼驗證與HTTP驗證用法,以實例形式較為詳細的分析了表單密碼驗證與HTTP驗證的原理與相關注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • PHP使用JPGRAPH制作圓柱圖的方法詳解

    PHP使用JPGRAPH制作圓柱圖的方法詳解

    這篇文章主要介紹了PHP使用JPGRAPH制作圓柱圖的方法,結合實例形式詳細分析了PHP使用JPGRAPH繪制圓柱圖形的具體步驟與相關操作技巧,需要的朋友可以參考下
    2019-12-12
  • PHP生成Flash動畫的實現(xiàn)代碼

    PHP生成Flash動畫的實現(xiàn)代碼

    使用 Flash 動畫的第一種方法是使用 Ming 庫動態(tài)生成它們。Ming 庫是一個 PHP 庫,在wamp我看到已經(jīng)帶了這個庫,只是沒有啟用。
    2010-03-03
  • php實現(xiàn)簡單洗牌算法

    php實現(xiàn)簡單洗牌算法

    本篇文章是對php實現(xiàn)簡單洗牌算法的程序代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP關聯(lián)數(shù)組實現(xiàn)根據(jù)元素值刪除元素的方法

    PHP關聯(lián)數(shù)組實現(xiàn)根據(jù)元素值刪除元素的方法

    這篇文章主要介紹了PHP關聯(lián)數(shù)組實現(xiàn)根據(jù)元素值刪除元素的方法,實例分析了php差集運算函數(shù)array_diff及數(shù)組遍歷對比刪除的兩種方法,需要的朋友可以參考下
    2015-06-06
  • 詳解如何使用PHP實現(xiàn)動態(tài)代理IP的功能

    詳解如何使用PHP實現(xiàn)動態(tài)代理IP的功能

    動態(tài)代理IP是一種通過不斷切換不同的代理IP來隱藏真實IP地址的技術,動態(tài)代理IP可以有效地解決IP被封鎖或訪問限制的問題,本文將使用PHP語言實現(xiàn)動態(tài)代理IP的功能,需要的朋友可以參考下
    2024-03-03
  • php常用字符函數(shù)實例小結

    php常用字符函數(shù)實例小結

    這篇文章主要介紹了php常用字符函數(shù),結合實例形式總結分析了php常用字符函數(shù)substr、preg_match、strpos、dirname及str_split功能、用法與相關注意事項,需要的朋友可以參考下
    2016-12-12
  • PHP 轉義使用詳解

    PHP 轉義使用詳解

    以下是對PHP轉義的是應用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07

最新評論

阿拉善左旗| 桂阳县| 游戏| 萍乡市| 滨海县| 蒲城县| 大石桥市| 乐至县| 贵南县| 永春县| 昌平区| 平南县| 大城县| 金阳县| 磐石市| 台山市| 双鸭山市| 崇州市| 勐海县| 伊川县| 田林县| 九江市| 邵东县| 宝应县| 崇义县| 沁阳市| 永靖县| 宿迁市| 于都县| 衡山县| 临泉县| 霍邱县| 永和县| 饶河县| 双桥区| 宁化县| 长阳| 上饶市| 辉县市| 漳平市| 宾阳县|