Вот тебе я накидал готовый класс, дальше его настраивай и работай с ним сам. Код (Text): <?php class CompareString { public $findArray = array(); private $inRow1,$inRow2,$tmp1,$tmp2; public function __construct($str, $toStr) { $this->inRow1 = $str; $this->inRow2 = $toStr; $this->tmp1 = array_unique(explode(' ', $str)); sort($this->tmp1); $this->tmp2 = explode(' ', $toStr); $this->goCompare(); return $this; } private function goCompare() { foreach ($this->tmp1 as $val1) { foreach ($this->tmp2 as $val2) { if ($val1 == $val2) { if ($this->findArray[$val1] == null) $this->findArray[$val1] = 0; ++$this->findArray[$val1]; } } } } public function renderResult() { echo "<p>$this->inRow1</p>"; echo "<p>$this->inRow2</p>"; echo "<table>"; foreach ($this->findArray as $key => $value) { printf('<tr><td>Слово:</td><td><font color="red" >%s</font></td><td>повторяеться:</td><td><font color="red" >%s</font></td><td>раз.</td></tr>', $key, $value); } echo "</table>"; } } $str1 = 'Берешь его одно слово из первого массива и проверяешь его'; $str2 = 'Берешь его одно слово из первого массива и его проверяешь его и наличие другом, затем 2-рое и так далее'; $result = new CompareString($str1, $str2); $result->renderResult(); ?> Результат: Что сравниваем Берешь его одно слово из первого массива и проверяешь его С чем сравниваем Берешь его одно слово из первого массива и его проверяешь его и наличие другом, затем 2-рое и так далее Слово: Берешь повторяеться: 1 раз. Слово: его повторяеться: 3 раз. Слово: и повторяеться: 3 раз. Слово: из повторяеться: 1 раз. Слово: массива повторяеться: 1 раз. Слово: одно повторяеться: 1 раз. Слово: первого повторяеться: 1 раз. Слово: проверяешь повторяеться: 1 раз. Слово: слово повторяеться: 1 раз.
Код (PHP): private $inRow1,$inRow2,$tmp1,$tmp2; и Код (PHP): echo "<p>".$this->inRow1."</p><p>".$this->inRow2."</p><table>"; и в целом поменьше коду пишите, проще будет)
Код (Text): class CompareString { static public function Compare($str, $toStr) { $findArray = array(); $tmp1 = array_unique(explode(' ', $str)); $tmp2 = explode(' ', $toStr); foreach ($tmp1 as $val1) { foreach ($tmp2 as $val2) { if ($val1 == $val2) { if ($findArray[$val1] == null) $findArray[$val1] = 0; ++$findArray[$val1]; } } } return $findArray; } } Код (Text): $str1 = 'Берешь его одно слово из первого массива и проверяешь его'; $str2 = 'Берешь его одно слово из первого массива и его проверяешь его и наличие другом, затем 2-рое и так далее'; var_dump(CompareString::Compare($str1, $str2)); Меньше некуда!!!
а если $ar_str1=implode(":",$str1); $ar_str2=implode(":",$str2); и потом array_diff или array_intersect