字符串中的两个相同单词

时间:2018-06-11 15:09:22

标签: php

我有问题,我不知道如何解决它。 我有这样的字符串。

$string = "car apple computer car"
$string2 = "car apple computer"

我需要函数,它可以区分字符串是否包含两个相同的单词。所以对于$ string返回1和$ string2返回0

2 个答案:

答案 0 :(得分:-1)

使用explode()用空格拆分句子。计算元素,然后使用array_unique()。如果有重复项,元素数将会下降。

<?php

function hasSameWords($string) {

    $array = explode(' ', $string);
    $count = count($array);
    $unique = array_unique($array);
    $uniqueCount = count($unique);

    return $uniqueCount < $count;
}


$string = "car apple computer car";
$string2 = "car apple computer";

echo hasSameWords($string) ? 'true' : 'false';
echo hasSameWords($string2) ? 'true' : 'false';

输出:

True
False

在此处试试:https://3v4l.org/8iidN

答案 1 :(得分:-2)

您可以使用explode将字符串转换为数组。使用array_unique获取唯一字词。如果唯一字的计数和数组的计数相同,则字符串(数组)没有相同的字。

function func($str) {
    $arr = explode( ' ', $str );
    return count(array_unique( $arr )) === count( $arr );
}

echo func( "car apple computer car" );
echo func( "car apple computer" );

文档:explode()array_unique()