假设我们有两个字符串,我想逐个字符地比较它们,以检查字符串a和字符串b中的任何字符是否匹配?
一个例子:
$a = "Hello";
$b = "world";
以上两个字符串中都存在'o',因此算法应回显exist
。
答案 0 :(得分:5)
如果拆分字符串并使用array_unique删除重复项,则array_intersect将为您提供两个字符串中的字符。
$a = "Hello";
$b = "world";
$matching = array_unique(array_intersect(str_split(strtolower($a)), str_split(strtolower($b))));
if(count($matching)>0) echo "matching characters: " . implode(", ", $matching);
//matching characters: l, o
按照罗恩的建议添加了strtolower。
答案 1 :(得分:1)
您可以使用str_split()
转换字符串,并使用array_intersect()
获得匹配的字符:
$a = "Hello";
$b = "world";
$matching_chars = array_intersect(
str_split($a),
str_split($b)
);
if (empty($matching_chars)) {
echo 'exist';
}
$matching_chars
将是一个包含字母l
和o
的数组:
Array
(
[2] => l
[3] => l
[4] => o
)