上一篇文章中我們了解了使用「自然」演算法知道字串異同的方法,有需要的請看《php如何使用「自然」演算法知道字串的異同」。這次我們向大家介紹使用「自然」演算法知道字串異同的另一種方法,有需要的可以參考參考。
在上一篇文章中,我們介紹了一種不區分大小寫的「自然」演算法。但是,小夥伴們,你們有疑慮嗎?就是在用的時候要是需要保證字串的字母大小寫也是一樣的時候,該怎麼去寫?今天小編就來跟大家說一個區分大小寫的「自然」演算法是如何比較字串的。
讓我們來看一個小栗子。
<?php echo strnatcmp("2Hello WORLD!","10Hello WORLD!"); echo "<br>"; echo strnatcmp("2hello world!","2aello world!"); echo "<br>"; echo strnatcmp("2hello world!","9hello WORLD!"); echo "<br>"; echo strnatcmp("2hello world!","2HELLO WORLD!"); echo "<br>"; echo strnatcmp("2hello world!","2hello world!"); ?>
結果為
我們看一下這個結果,這個函數的結果還是使用“0
”,“ -1
”,“1
”來表示兩個函數比較的結果。我們看這個例子
當我們除了前面數字其他都一模一樣的時候,我們發現數字是-1,也就說第一個字串小於第二個字串;當我們數字一樣,但是後面字母有所變化的時候,是1,也就說第一個字串大於第二個字串;而當數字一樣,字母一樣,大小寫不一樣的時候,發現為1;只有當數字,字母,而字母的大小寫完全一樣的時候,才是0,也就是兩個字串相等。
那我們來看看這個函數吧。
strnatcmp() 函數使用一種"自然"演算法來比較兩個字串(區分大小寫)。在自然演算法中,數字 2 小於數字 10。在電腦排序中,10 小於 2,這是因為 10 中的第一個數字小於 2。
這個函數的語法是
strnatcmp(要比较的第一个字符串,要比较的第二个字符串)
這些與我們上一篇文章介紹的函數一樣,但是我們還是要來看這個函數的回傳值。
此函數傳回:
0 - 如果兩個字串相等
>0 - 如果string1 大於string2
就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
#以上是php一招搞定「自然」演算法比較字串的異同(區分大小寫)的詳細內容。更多資訊請關注PHP中文網其他相關文章!