我正在尝试对具有不同长度的字母数字字符串的数组进行排序。我在这个比较中遇到了一些困难:
>>> strnatcasecmp("IG2349", "IG56LR1617617")
=> 1
如您所见,结果表明“IG2349”大于“IG56LR1617617”,因此“IG56LR1617617”在排序后出现在“IG2349”之前。
但是看看字符串,在第一个字符(等于)之后,第三个字符串在第一个字符串上比在第二个字符串上低,所以结果应该是< 1。
这是在php 5.6.20上测试的。
答案 0 :(得分:0)
使用二进制安全比较strcasecmp
代替自然:
strcasecmp("IG2349", "IG56LR1617617");