1. 程式人生 > >通過自定義函式進行字串或陣列進行排序

通過自定義函式進行字串或陣列進行排序

程式碼如下:

<?php

/*

 * 函式名:customComp

 * 說明:引數比較

 */

function customComp($a,$b){

// 返回字串的首個字元的 ASCII 值

    $a=ord($a);

    $b=ord($b);

    $res=$a > $b; 

    return $res;

}


/*

 * 函式名:dictSort

 * 說明:自定義排序

 * @params strs 字串

 */

function dictSort($strs){

$flag = true;

if (!is_array($strs)) {

$flag = false;

// 把字串分割到陣列中

    $arr = str_split($strs);

}else{

$arr = $strs;

}

    // 通過使用者自定義的比較函式對陣列進行排序。arr陣列名稱,customComp自定義排序函式名

    // 如果第一個引數小於等於或大於第二個引數,那麼比較函式必須返回一個小於等於或大於 0 的整數

    usort($arr,'customComp');

    if ($flag) {

    return $arr;

    }

    // 將陣列轉換為字串

    return implode("",$arr);

}


// 對字串進行排序

$str = "cdab";

$result=dictSort($str);

var_dump($result);


// 對陣列進行排序

$str1 = array(3,5,1,2);

$result=dictSort($str1);

var_dump($result);

執行結果如下:

QQ截圖20181017140057.png

QQ截圖20181017140148.png