中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用PHP怎么對二維數組按照指定字段進行排序

發布時間:2021-01-26 16:47:26 來源:億速云 閱讀:217 作者:Leah 欄目:開發技術

本篇文章為大家展示了利用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
        )

)

上述內容就是利用PHP怎么對二維數組按照指定字段進行排序,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保山市| 千阳县| 义马市| 册亨县| 黄石市| 平罗县| 沙坪坝区| 兰西县| 涪陵区| 余干县| 玉树县| 大新县| 乌恰县| 汾阳市| 遂昌县| 利辛县| 咸宁市| 枣阳市| 临沭县| 安远县| 洞口县| 临朐县| 神农架林区| 万盛区| 芜湖县| 凉山| 华坪县| 方城县| 翼城县| 太白县| 于都县| 札达县| 芜湖市| 堆龙德庆县| 高邮市| 个旧市| 大连市| 娄底市| 富民县| 军事| 额济纳旗|