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

 更新时间:2014年04月08日 14:23:21   作者:  
这是一个在stackoverflow上的问题。 给出两个长度相等的字符串,找出这两个字符串中第一个不同的字符位置。

一般的做法就会这样:

复制代码 代码如下:

<?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中yum命令用法详解

    php中yum命令用法详解

    在本篇文章里小编给大家整理的是一篇关于php中yum命令用法详解内容,对此有兴趣的朋友们可以学习下。
    2021-01-01
  • php使用strtotime和date函数判断日期是否有效代码分享

    php使用strtotime和date函数判断日期是否有效代码分享

    php使用strtotime和date函数进行检验判断日期是否有效代码分享,大家参考使用吧
    2013-12-12
  • php用xpath解析html的代码实例讲解

    php用xpath解析html的代码实例讲解

    在本篇文章里小编给大家分享了关于php用xpath解析html的代码实例讲解,对此有需要的朋友们可以学习下。
    2019-02-02
  • PHP7引入的

    PHP7引入的"??"和"?:"的区别讲解

    今天小编就为大家分享一篇关于PHP7引入的"??"和"?:"的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • php使用百度天气接口示例

    php使用百度天气接口示例

    这篇文章主要介绍了百度天气接口使用示例,需要的朋友可以参考下
    2014-04-04
  • CI配置多数据库访问的方法

    CI配置多数据库访问的方法

    这篇文章主要介绍了CI配置多数据库访问的方法,结合实例形式分析了CI框架数据库配置与使用的相关技巧,需要的朋友可以参考下
    2016-03-03
  • 解决tp5在nginx下修改配置访问的问题

    解决tp5在nginx下修改配置访问的问题

    今天小编就为大家分享一篇解决tp5在nginx下修改配置访问的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 详解阿里云视频直播PHP-SDK接入教程

    详解阿里云视频直播PHP-SDK接入教程

    这篇文章主要介绍了阿里云视频直播PHP-SDK接入教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • PHP常见算法合集代码实例

    PHP常见算法合集代码实例

    这篇文章主要介绍了PHP常见算法合集代码实例,有对算法不太了解的同学可以借鉴参考下
    2021-01-01
  • 关于Laravel参数验证的一些疑与惑

    关于Laravel参数验证的一些疑与惑

    这篇文章主要给大家介绍了关于Laravel参数验证的一些疑与惑,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11

最新评论