亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

利用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

东海县| 敦煌市| 武胜县| 辽宁省| 铜山县| 石景山区| 安陆市| 京山县| 仙居县| 沙雅县| 泗水县| 西乌| 临沂市| 陵水| 正蓝旗| 华容县| 元谋县| 肥西县| 南乐县| 邓州市| 祁阳县| 钟祥市| 邻水| 龙州县| 堆龙德庆县| 龙门县| 屯昌县| 广平县| 本溪| 西和县| 大冶市| 龙游县| 太谷县| 怀柔区| 平南县| 长乐市| 卓资县| 阆中市| 灌云县| 工布江达县| 锦屏县|