对接支付接口,需要对数组a-z自然排序然后加密,使用php ksort
函数排序结果与接口不一致,
查看java的示例demo:
Arrays.sort(arr, String.CASE_INSENSITIVE_ORDER);
其中使用Case-insensitive sort (严格按字母表顺序排序,也就是忽略大小写排序)
ksort的可选参数
sort_flags
有6个可选值。
- SORT_REGULAR - 正常比较单元(不改变类型)
- SORT_NUMERIC - 单元被作为数字来比较
- SORT_STRING - 单元被作为字符串来比较
- SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
- SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
- SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。
使用不区分大小写的选值进行排序
ksort($arr, SORT_NATURAL | SORT_FLAG_CASE);