博主幫我解決了大問題,感謝!記錄這個坑
(遇坑這個接口文檔沒有PHP簽名的示例,而且也不是根據鍵值和value值進行升序、降序,是比較的每個字符串的每個字符的ACSII值,一直比較出大小為止)

// 比較兩串字符的ascii碼大小 function check_ascii(string $str1, string $str2){ $len1 = strlen($str1); $len2 = strlen($str2); if ($len1 > $len2) { $bool = false; $len = $len2; } else { $bool = true; $len = $len1; } for ($i=0; $i<$len; ++$i) { if (ord($str1[$i]) > ord($str2[$i])) { // 第一個 比 第二個 大 return false; } elseif (ord($str1[$i]) < ord($str2[$i])) { // 第二個 比 第一個 大 return true; } } return $bool; // 前面字符相等,長度短的小 } // 比較兩串字符的ascii碼大小 function check_ascii(string $str1, string $str2){ $len1 = strlen($str1); $len2 = strlen($str2); if ($len1 > $len2) { $bool = false; $len = $len2; } else { $bool = true; $len = $len1; } for ($i=0; $i<$len; ++$i) { if (ord($str1[$i]) > ord($str2[$i])) { // 第一個 比 第二個 大 return false; } elseif (ord($str1[$i]) < ord($str2[$i])) { // 第二個 比 第一個 大 return true; } } return $bool; // 前面字符相等,長度短的小 } // 根據 ascii碼 排序 順序 (仿windows文件排序) function asc_sort(array &$arr, callable $callable){ foreach ($arr as $k1=>&$v1) { foreach ($arr as $k2=>&$v2) { if ($v1 != $v2 && $callable($v1, $v2)) { $tmp = $v1; $v1 = $v2; $v2 = $tmp; } } } } // 根據 ascii碼 排序 倒序 (仿windows文件排序) function ascr_sort(array &$arr, callable $callable){ foreach ($arr as &$v1) { foreach ($arr as &$v2) { if ($v1 != $v2 && !$callable($v1, $v2)) { $tmp = $v1; $v1 = $v2; $v2 = $tmp; } } } } $arr = [ 'abc', 'aba', 'ab', 'ab2', '11', '10', '012', ]; asc_sort($arr, 'check_ascii'); dump(check_ascii('abc', 'abb')); dump($arr);
————————————————
版權聲明:本文為CSDN博主「drzdryse」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_37711659/article/details/93893174