婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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實現二維數組按照指定的字段進行排序算法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 屯昌县| 宁夏| 莫力| 安达市| 沙雅县| 三台县| 洛扎县| 宁波市| 闻喜县| 且末县| 邵阳市| 蛟河市| 吐鲁番市| 扎兰屯市| 论坛| 汤阴县| 杭州市| 盘山县| 衡阳市| 吴忠市| 民丰县| 栾城县| 阿荣旗| 崇明县| 靖宇县| 桃园市| 会理县| 永丰县| 九台市| 宁南县| 抚顺市| 布尔津县| 平度市| 遵义市| 锡林浩特市| 仪征市| 阿勒泰市| 靖边县| 苏尼特右旗| 三门峡市| 甘孜县|