代码如下:

<?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);

运行结果如下: