我想比較兩個字符串「數字」。我的意思是像2C
小於11A
。我想這和它不工作:比較字符串「數字優先」
if("2A" < "11A"){
echo "First corect";
}
if(strcmp("2A", "11A") < 0){
echo "Last corect";
}
echo "Tests completed";
我想比較兩個字符串「數字」。我的意思是像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」之前)。
+1打我到它 – 2013-05-08 12:30:50
試試這樣說:
if((int) '2A' < (int) '11A'){
echo "First correct";
}
if(intval(0x2A) < intval(0x11A)){
echo "First corect";
}
else
{
echo "Tests incompleted";
}
嘗試這個代碼
編寫的函數:
<Object>
其中每個對象可以是字符串或整數與整數正在創建從非數字之間的連續數字字符串開始,字符串在任何2位之間是連續的非數字。Nth elements
都相等,繼續比較N+1th elements
,否則將return t/f
根據整數或字符串進行字符串比較。
你必須字符串令牌使用正則表達式第一分開。然後,您可以先對令牌進行排序,然後重新組合結果。 – arkascha 2013-05-08 12:26:18
你究竟用「數字」來表示什麼? – F0G 2013-05-08 12:26:37
是2A和11A的十六進制數字嗎? – Kasyx 2013-05-08 12:27:35