PHP: найти общую повторяющуюся строку? - PullRequest
3 голосов
/ 09 мая 2011

У меня такая ситуация в PHP.У меня есть массив, который имеет эти ключи, например, провода-1, провода-2, провода-3.Мне нужна функция или способ для моей программы, чтобы прочитать эти ключи, и найти, что общее слово это провода?Как это будет достигнуто в PHP?Спасибо за вашу помощь.

Ответы [ 3 ]

0 голосов
/ 09 мая 2011

Для строкового значения каждого ключа в вашем массиве:

  1. Удалите все не-буквенные символы, т.е. оставьте только буквы, чтобы ctype_alpha($remaining_text) возвращало true.
  2. Сохранить массив с найденными словами в виде ключей и их частотами в виде значений , например:

    $array = new array();
    function found_word($word)
    {  global $array;
       if(!isset($array[$word])) { $array[$word] = 1; }
       else { $array[$word]++; }
    }
    

    Только приятнее;)

  3. Сортировать массив в обратном порядке, используя arsort($array);
  4. $array теперь содержит самые найденные слова в качестве первых элементов.
0 голосов
/ 09 мая 2011
  1. вам нужно будет создать каждый возможный суффикс для каждой имеющейся у вас строки.
  2. создать карту для каждого найденного вами суффикса
  3. подсчитать число каждого суффикса в массиве

Вы можете изменить производительность с помощью f.ex.ограничение длины суффикса

0 голосов
/ 09 мая 2011

Посмотрите, как работает функция автозаполнения, это похоже на ваш подход.

Я уверен, что в Google достаточно исходных кодов для автозаполнения

...