Я пытаюсь найти 2 одинаковых слова в списке, если у вас есть 2 массива слов, как это:
$words = array("peace", "loving", "air", "earth");
$category = array("lover", "something", "example", "peace"); // (actually I have more than 1000 categories)
самое похожее (или точное) слово будет «peace
«, так что он может напечатать слово массива $category
и исключить остальных из них.
Пример 1:
Но когда я пишу больше текста (кавычек), иногда он не соответствует ни одной категории и просто отображается пустым, даже если есть какая-то категория с похожим текстом и показывает это:
Пример 2:
Это мой код, который сталкивается с «for
«Цикл, чтобы получить каждую цитату и отделить каждую из них с preg_split()
:
<?php for($i=0;$i<count($text);$i++) { ?>
<!-- Quote -->
<td><textarea name="txtquote[<?php echo $i; ?>]" id="txtquote[<?php echo $i; ?>]" cols="45" rows="5"><?php echo trim($text[$i]); ?></textarea></td>
<!-- Category -->
<?php
$rows = mysql_num_rows($RecordsetCategory);
if($rows > 0) { mysql_data_seek($RecordsetCategory, 0);
while ($row_RecordsetCategory = mysql_fetch_assoc($RecordsetCategory)) {
$input = $row_RecordsetCategory['category'];
$words = str_word_count($text[$i],1);
$shortest = -1;
foreach ($words as $word) {
$lev = levenshtein($input, $word);
if ($lev == 0) {
$closest = $word;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word;
$shortest = $lev;
}
}
if ($shortest == 0) { ?>
<option value="<?php echo $row_RecordsetCategory['id']?>"><?php echo $closest;?></option>
<?php } } }
} // end
?>
Что я могу сделать, чтобы избежать этого? Найдите такое же слово в категории, когда я пишу больше текста, а белый комбобокс не отображается.
Задача ещё не решена.
Других решений пока нет …