How to check if two string contains same words in PHP

2 Answers

0 votes
$s = "java cpp php python php cpp";
$q = "php python java python cpp";

$sarr = array_unique(str_word_count(implode(' ', explode(" ", $s)), 1));
$qarr = array_unique(str_word_count(implode(' ', explode(" ", $q)), 1));

$intersectionarr = array_intersect($sarr, $qarr);

echo count($sarr) . "\n";
echo count($qarr) . "\n";
echo count($intersectionarr) . "\n";

if (count($sarr) == count($qarr) && count($sarr) == count($intersectionarr))
    echo "yes";
else
    echo "no";



/*
run:

4
4
4
yes

*/

 



answered Aug 12, 2020 by avibootz
0 votes
function sort_string($s) {
    $arr = str_split($s);
    sort($arr);
      
    return trim(implode('', $arr)); 
}

$s = "java c++ php python php c++ c";
$q = "php python c java python c++ php";

// remove duplicate words
$tmps = implode(' ', array_unique(explode(' ', $s)));
$tmpq = implode(' ', array_unique(explode(' ', $q)));
echo $tmps . "\n";
echo $tmpq . "\n";

// sort strings 
$tmps = sort_string($tmps);
$tmpq = sort_string($tmpq);
echo $tmps . "\n";
echo $tmpq . "\n";

// option a
similar_text(sort_string($tmps), sort_string($tmpq), $perc);
echo "$perc %\n";

// option b
if ($tmps == $tmpq)
    echo "Same words";
else
    echo "Not same words";





/*
run:

java c++ php python c
php python c java c++
++aacchhjnoppptvy
++aacchhjnoppptvy
100 %
Same words

*/

 



answered Aug 12, 2020 by avibootz
...