源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-07-18 20:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP中比较两个字符串找出第一个不同字符位置例子
一般的做法就会这样:
[u]复制代码[/u] 代码如下:
<?php for ($offset = 0; $offset < $length; ++$offset) {     if ($str1[$offset] !== $str2[$offset]) {         return $offset;     } }
而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到。 因为一般情况下,当你对两个字符串进行异或操作的时候,相同的字符的异或结果是null(“\0”),所以我们只要找出第一个非null(“\0”)字符就可以了。
[u]复制代码[/u] 代码如下:
<?php $position = strspn($string1 ^ $string2, "\0");
很明显这是一个更优雅高效的方法。 另外,回答的人还附加了一个多字节字符的解决办法。
[u]复制代码[/u] 代码如下:
<?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              ); }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部