首頁  >  文章  >  後端開發  >  php如何使用「自然」演算法知道字串的異同

php如何使用「自然」演算法知道字串的異同

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-08-05 14:35:461462瀏覽

上一篇文章中我們了解了查找字串在另一個字串中最後一次出現位置的方法,有需要的請看《php如何知道字串最後一回出現的位置 》。這次我們向大家介紹使用「自然」演算法知道字串的異同,有需要的可以參考參考。

在之前的文章中,我們介紹了比較字串的方法,但是我們這次不一樣啦,我們使用「自然」演算法來比較字串。如果有想知道使用普通演算法比較字串的,可以看完之前的文章《php函數之如何知道字串的異同》哦。

我們來看看什麼叫做「自然」排序演算法。

實現了一個和人們通常對字母數字字串進行排序的方法一樣的排序演算法並保持原有鍵/值的關聯,這被稱為「自然排序」。

好了,我們現在就來進入正題吧。

首先我們來看一個小例子。

<?php
echo strnatcasecmp("2Hello WORLD!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("2hello world!","2aello world!");
echo "<br>";
echo strnatcasecmp("2hello world!","9hello WORLD!");
echo "<br>";
echo strnatcasecmp("2hello world!","2HELLO WORLD!");
?>

這個結果是

php如何使用「自然」演算法知道字串的異同

我們仔細看看這個例子啊,當我們除了前面數字其他都一模一樣的時候,我們發現數字是-1 ,當我們數字一樣,但是後面字母有所變化的時候,是1,而當數字一樣,字母一樣,大小寫不一樣的時候,發現為0.這都是什麼原因呢?

帶著這些疑問,我們去看看這個函數吧。

strnatcasecmp() 函數使用一種"自然"演算法來比較兩個字串(不區分大小寫)。

既然這樣,那我們就去看看這個函數的語法吧。

strnatcasecmp(要比较的第一个字符串,要比较的第二个字符串)

之前我們還在好奇的“0”,“-1”,“1”,你知道是什麼意思嗎?不賣關子了,其實這些是函數的回傳值,用來說明第一個字串與第二個字串之間的關係的。

此函數傳回:

  • 0 - 如果兩個字串相等

  • ##
  • >0 - 如果string1 大於string2

其實用「自然」演算法比較字串的方法有兩種,這次我們就介紹這種對大小寫不敏感的,下一篇文章介紹一下對大小寫敏感的。


就說到這裡了,有其他想知道的,可以點選這個喔。 → →

php影片教學#

以上是php如何使用「自然」演算法知道字串的異同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn