PHP中比較兩個(gè)字符串找出第一個(gè)不同字符位置例子
一般的做法就會(huì)這樣:
<?php
for ($offset = 0; $offset < $length; ++$offset) {
if ($str1[$offset] !== $str2[$offset]) {
return $offset;
}
}
而問題下面給出的最佳答案是用異或操作符( ^ ),以前從來沒用過這個(gè)操作符,也不知道能用到什么地方,今天算是學(xué)到。
因?yàn)橐话闱闆r下,當(dāng)你對兩個(gè)字符串進(jìn)行異或操作的時(shí)候,相同的字符的異或結(jié)果是null(“\0”),所以我們只要找出第一個(gè)非null(“\0”)字符就可以了。
<?php
$position = strspn($string1 ^ $string2, "\0");
很明顯這是一個(gè)更優(yōu)雅高效的方法。 另外,回答的人還附加了一個(gè)多字節(jié)字符的解決辦法。
<?php
function getCharacterOffsetOfDifference($str1, $str2, $encoding = 'UTF-8') {
return mb_strlen($str1, $encoding)
- mb_strlen(
mb_strcut(
$str1,
strspn($str1 ^ $str2, "\0"),
mb_strlen($str1, '8bit'),
$encoding
),
$encoding
);
}
- php獲取字符串前幾位的實(shí)例(substr返回字符串的子串用法)
- PHP實(shí)現(xiàn)求兩個(gè)字符串最長公共子串的方法示例
- PHP字符串中插入子字符串方法總結(jié)
- php實(shí)現(xiàn)指定字符串中查找子字符串的方法
- php根據(jù)指定位置和長度獲得子字符串的方法
- PHP中substr_count()函數(shù)獲取子字符串出現(xiàn)次數(shù)的方法
- php刪除字符串末尾子字符,刪除開始字符,刪除兩端字符(實(shí)現(xiàn)代碼)
- php函數(shù)之子字符串替換 str_replace
- php實(shí)現(xiàn)子字符串位置相互對調(diào)互換的方法
- php使用strpos判斷字符串中數(shù)字類型子字符串出錯(cuò)的解決方法
- php中有關(guān)字符串的4個(gè)函數(shù)substr、strrchr、strstr、ereg介紹和使用例子
- PHP字符串中抽取子串操作實(shí)例分析
相關(guān)文章
基于PHP+Mysql簡單實(shí)現(xiàn)了圖書購物車系統(tǒng)的實(shí)例詳解
這篇文章主要介紹了基于PHP+Mysql簡單實(shí)現(xiàn)了圖書購物車系統(tǒng)的實(shí)例詳解,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下 面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
PHP判斷用戶是否已經(jīng)登錄(跳轉(zhuǎn)到不同頁面或者執(zhí)行不同動(dòng)作)
這篇文章主要介紹了PHP判斷用戶是否已經(jīng)登錄(跳轉(zhuǎn)到不同頁面或者執(zhí)行不同動(dòng)作)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
用 Composer構(gòu)建自己的 PHP 框架之基礎(chǔ)準(zhǔn)備
這篇文章主要介紹了用 Composer構(gòu)建自己的 PHP 框架的基礎(chǔ)準(zhǔn)備工作,其實(shí)就是各種基礎(chǔ)知識,想自己搭建php框架的童鞋可要看仔細(xì)了2014-10-10
深入剖析瀏覽器退出之后php還會(huì)繼續(xù)執(zhí)行么
覽器退出之后php還會(huì)繼續(xù)執(zhí)行么?下面小編就為大家介紹一下究竟覽器退出之后php還會(huì)不會(huì)繼續(xù)執(zhí)行。一起跟隨小編過來看看吧2016-05-05
Laravel中獲取路由參數(shù)Route Parameters的五種方法示例
這篇文章主要給大家介紹了關(guān)于Laravel中獲取路由參數(shù)Route Parameters的五種方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-09-09
ThinkPHP實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存示例代碼
本篇文章主要介紹了ThinkPHP實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Thinkphp5.0自動(dòng)生成模塊及目錄的方法詳解
這篇文章主要介紹了Thinkphp5.0自動(dòng)生成模塊及目錄的方法,簡單分析了Thinkphp5.0的結(jié)構(gòu)、目錄、創(chuàng)建與運(yùn)行方法,需要的朋友可以參考下2017-04-04

