Я использую следующий код, чтобы вывести определение слова из файла с разделителями табуляции только с двумя столбцами (слово, определение). Это самый эффективный код для того, что я пытаюсь сделать?PHP - наиболее эффективный код словаря
<?php
$haystack = file("dictionary.txt");
$needle = 'apple';
$flipped_haystack = array_flip($haystack);
foreach($haystack as $value)
{
$haystack = explode("\t", $value);
if ($haystack[0] == $needle)
{
echo "Definition of $needle: $haystack[1]";
$defined = "1";
break;
}
}
if($defined != "1")
{
echo "$needle not found!";
}
?>
Насколько он медленный? Вы сталкиваетесь с проблемами? –
@RichBradshaw В настоящее время это не медленно или проблематично, потому что у меня есть только несколько записей, но я собираюсь создать 100 000 записей. – Pamela
Почему бы не создать подобный размерный набор данных случайным образом (например, строка может быть «sdfkjalwerjkl 8yuoayisyfiuh2342 asdkfh kdh slfk jsfhalsdkjf» или что бы то ни было, тогда попробуйте свой код на этом - если это медленно, то это достойное место, чтобы потратить ваше время - если это не так, тогда проблема решена! :) Использование trie - это «правильный путь», но 100 000 - это не много данных. –