比较字符串“按数字优先” - php

我想“按数字”比较两个字符串。我的意思是说2C小于11A。我尝试了这个,但是它不起作用:

if("2A" < "11A"){
    echo "First corect";
}

if(strcmp("2A", "11A") < 0){
    echo "Last corect";
}

echo "Tests completed";

参考方案

您正在寻找strnatcmp(或其不区分大小写的同级兄弟strnatcasecmp)。

这会将输入的数字部分比较为数字(将“ 2whatever”放置在“ 11whatever”之前),将文本部分作为文本(将“ 2a”放置在“ 2b”之前)。

45码