通過自定義函式進行字串或陣列進行排序
阿新 • • 發佈:2018-11-11
程式碼如下:
<?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);
執行結果如下: