PHP中比较两个字符串找出第一个不同字符位置例子


Posted in PHP onApril 08, 2014

一般的做法就会这样:

<?php
for ($offset = 0; $offset < $length; ++$offset) {
    if ($str1[$offset] !== $str2[$offset]) {
        return $offset;
    }
}

而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到。

因为一般情况下,当你对两个字符串进行异或操作的时候,相同的字符的异或结果是null(“\0”),所以我们只要找出第一个非null(“\0”)字符就可以了。

<?php
$position = strspn($string1 ^ $string2, "\0");

很明显这是一个更优雅高效的方法。 另外,回答的人还附加了一个多字节字符的解决办法。
<?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 相关文章推荐
html中select语句读取mysql表中内容
Oct 09 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP云打印类完整示例
Oct 15 PHP
php数组指针操作详解
Feb 14 PHP
php pdo操作数据库示例
Mar 10 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 #PHP
php实现telnet功能示例
Apr 08 #PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 #PHP
php实现水仙花数的4个示例分享
Apr 08 #PHP
php命令行使用方法和命令行参数说明
Apr 08 #PHP
php实现httpclient类示例
Apr 08 #PHP
php使用json_encode对变量json编码
Apr 07 #PHP
You might like
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python二元赋值实用技巧解析
2019/10/25 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
关于Django Models CharField 参数说明
2020/03/31 Python
Python实现验证码识别
2020/06/15 Python
详解python对象之间的交互
2020/09/29 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
幼儿园儿童节主持词
2014/03/21 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
小学清明节活动总结
2014/07/04 职场文书
学校开学标语
2014/10/06 职场文书
2014年打非治违工作总结
2014/11/13 职场文书