Для подсчета слов между двумя словами вы можете легко использовать:
count(split(" ", "lime orange banana"));
И функция , которая возвращает массив с совпадениями и счетами, будетбыть:
<code>function count_between_words($text, $first, $second, $case_sensitive = false)
{
if(!preg_match_all('/('.$first.')((?:(?!\\1).)*?)'.$second.'/s' . ($case_sensitive ? "" : "i"), preg_replace("/\\s+/", " ", $text), $results, PREG_SET_ORDER))
return array();
$data = array();
foreach($results as $result)
{
$result[2] = trim($result[2]);
$data[] = array("match" => $result[0], "words" => $result[2], "count" => count(split(" ", $result[2])));
}
return $data;
}
$result = count_between_words($txt, "tükörfúrógép", "árvíztűrő");
echo "<pre>" . print_r($result, true) . "
";
Результат будет:
Array
(
[0] => Array
(
[match] => tükörfúrógép cherry árvíztűrő
[words] => cherry
[count] => 1
)
[1] => Array
(
[match] => tükörfúrógép cat orange lime cat árvíztűrő
[words] => cat orange lime cat
[count] => 4
)
[2] => Array
(
[match] => tükörfúrógép banana orange lime orange lime cat árvíztűrő
[words] => banana orange lime orange lime cat
[count] => 6
)
)