好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP實現二維數組按照指定的字段進行排序算法示例

PHP實現二維數組按照指定的字段進行排序算法示例

熱門標簽:抖音有個地圖標注是什么意思 七魚外呼系統停用嗎 阿里云400電話申請加工單 海南人工外呼系統有效果嗎 保定crm外呼系統運營商 地下城堡2圖九地圖標注 九江外呼系統 智能電話機器人排名前十名南京 西區企業怎么做地圖標注入駐

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

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

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

下面封裝了這個函數,便于調用:

/**
 * 二維數組按照指定字段進行排序
 * @params array $array 需要排序的數組
 * @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
        )

)

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

/**
 * 二維數組按照指定的多個字段進行排序
 *
 * 調用示例: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("第一個參數應為數組");
 }
 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數組(Array)操作技巧大全》、《php排序算法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》及《PHP常用遍歷算法與技巧總結》

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

您可能感興趣的文章:
  • PHP實現的AES 128位加密算法示例
  • PHP實現基于3DES算法加密解密字符串示例
  • PHP實現二維數組中的查找算法小結
  • PHP封裝的非對稱加密RSA算法示例
  • 50個優秀經典PHP算法大集合 附源碼

標簽:梅河口 韶關 十堰 九江 甘肅 涼山 遼陽 昭通

巨人網絡通訊聲明:本文標題《PHP實現二維數組按照指定的字段進行排序算法示例》,本文關鍵詞  PHP,實現,二維,數組,按照,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現二維數組按照指定的字段進行排序算法示例》相關的同類信息!
  • 本頁收集關于PHP實現二維數組按照指定的字段進行排序算法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 巴西一级片| 男女大黄18级毛片免费| 97亚洲成a人无码亚洲成a无码| 熟女?人妻の波多野结衣av| 波多野结衣69xx| 羞羞漫画_在线看成人漫画| 亚洲AV无码乱码国产麻豆小说| 国产天天在线| 看全色黄大色黄大片大学生 | 大陆明星乱婬(高H)| 又黄又刺激又色无遮挡的免费软件| 国产大片黄| 波多野结衣| 日韩版码免费福利视频| 于子涵啪啪一区二区| 一级生活黄色片| 学长不让穿乳罩随时揉| 黄a一级| 国产sM残忍打屁股调教97| 亚洲AV男人的天堂| 女仆把秘?扒开给男人爽| 澳门必中三肖三码三期必开| 欧美日韩在线视频一区| 温碧霞三级无删减视频| 亚洲国产成人久久精品图片| 黄网址在线观看| 欧美最猛性XXXXX老少配| gv白受咬床单哭国产gv| 日本高清视频在线www色| 日本高清在线视频www色下载| 欧美一级免费片| 18????HD高潮流水| 跪下撅腚自己扒开| 高h孕交| 亚洲精品第一国产麻豆| 乳峰饱满的胸罩揉捏揉着饱满的胸| 意大利理仑片做爰与尝试未删减| 国产vr游戏福利| 成年激情网| 婚纱店娇妻被灌满H免费阅读| 日本人妻精品动漫H无码樱花动漫|