【问题标题】:i want to compare the string and show to characters which match in both strings in php我想比较字符串并显示在 php 中的两个字符串中匹配的字符
【发布时间】:2016-12-27 21:17:46
【问题描述】:

我想比较字符串并显示在 php 中的两个字符串中匹配的字符我尝试了所有方法但未能做到这一点请告诉我如何在 php 中执行此操作 例如我有两个变量

我必须比较 $a 和 $b 并将输出作为字母 whicj 在两者中都很常见

$a="hello ";
$b= "hell";

输出应该是 : :: hell 因为前 4 个字符匹配所以它应该显示 hell 请帮我这样做

我几乎尝试了所有我知道或可以在网上找到的东西 我尝试了什么..我将字符串吐到数组中...使用嵌套的for循环查找不匹配的字母...我写了超过35行的代码..但没有结果:(请帮助我......

【问题讨论】:

  • 欢迎来到 StackOverflow。您至少应该提供您正在使用的不同方法的示例。
  • 请把你的问题说清楚,单词和卓尔是否有相同的'w'、'o'、'r'、'd'。
  • 这是这个问题的(精确)副本:stackoverflow.com/questions/20921590/…
  • 看看这 35 行代码会有所帮助。你的问题不太清楚。如果结果只是 'colo' 还是应该是 'color',像 'color' 和 'color' 这样的字符串会发生什么?如果存在相同的字母但顺序不同怎么办?您使用的场景是什么?比较正确的答案?更具体,你会得到一个完美的答案。

标签: php


【解决方案1】:

在您的情况下,使用 array_intersectstr_split 函数来获取两个输入字符串共有的字符就足够了(当然,如果字符顺序无关紧要):

$a = "hello ";
$b = "hell";
$common = array_intersect(str_split(trim($a)), str_split(trim($b)));

print_r($common);

输出:

Array
(
    [0] => h
    [1] => e
    [2] => l
    [3] => l
)

http://php.net/manual/en/function.array-intersect.php

【讨论】:

  • array_intersect() 很好。请添加参考链接,以便读者深入查看。
  • @VasimVanzara,添加参考链接
【解决方案2】:

这个 PHP 代码就是你需要的。

<?php


$a = "hello";
$b = "hell";

$str = "";

for ($i=0; $i < strlen($a); $i++) { 
    for ($j=0; $j < strlen($b); $j++) { 
        if ($a[$i]==$b[$j]) {
            $str.=$a[$i];
            break;
        }
    }
}
echo $str;

?>

PHP 字符串可以看作是 Char 数组,因此 $a[0] 可以获取字符串的第一个字符。

【讨论】:

  • 除了这段代码是否能完成你经常犯的错误。不要在for 命令中使用该函数来确定字符串长度(任何语言)。长度不会改变,但你正在一遍又一遍地计算它。将值放在for 命令之前的变量中。
  • 是的,没错。最好先计算长度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多