2016-02-21 2 views
-2

Мне нужно выяснить, есть ли лишние слова в строке или нет. Есть ли какая-либо функция, которая может дать мне результат true/false.Как узнать, существует ли избыточное слово в строке в php?

Пример:

$str = "Hey! How are you"; 
$result = redundant($str); 
echo $result ; //result should be 0 or false 

Но:

$str = "Hey! How are are you"; 
$result = redundant($str); 
echo $result ; //result should be 1 or true 

Спасибо

+0

Http: // StackOverflow. com/questions/14035945/find-repeat-words-in-php-without-specifying-the-word-себя – mkaatman

+0

@mkaatman: Tha t - совершенно другая вещь ... Здесь мне просто нужно истинное/ложное возвращение. Ни одно слово не повторяется. Надеюсь, понимаешь. –

+0

Если какое-либо слово имеет счетчик> 1, верните true – mkaatman

ответ

0

Я думаю, что это то, что вы пытаетесь сделать, это разделение на знаки препинания или пробелы. Закомментированный из линии могут быть использованы, если вы хотите дублированные слова:

$str = "Hey! How are are you?"; 
$output = redundant($str); 
echo $output; 
function redundant($string){ 
    $words = preg_split('/[[:punct:]\s]+/', $string); 
    if(max(array_count_values($words)) > 1) { 
     return 1; 
    } else { 
     return 0; 
    } 
    //foreach(array_count_values($words) as $word => $count) { 
    // if($count > 1) { 
    //  echo '"' . $word . '" is in the string more than once'; 
    // } 
    //} 
} 

рекомендации:
http://php.net/manual/en/function.array-count-values.php
http://php.net/manual/en/function.max.php
http://php.net/manual/en/function.preg-split.php

Regex Демо: https://regex101.com/r/iH0eA6/1

1

Вы можете использовать взрываются, чтобы сформировать массив, содержащий все слова в строке:

$array = explode(" ", $str); 

Чем вы можете доказать, содержит ли массивы дубликаты с функцией, представленной в этом ответе: https://stackoverflow.com/a/3145660/5420511

Смежные вопросы