Комментарии 13
Интересно, но бесполезно… Не вижу дальнейшего развития этого алгоритма…
хабрапарсер, как всегда, — лох. он сьедает все «пустые теги», в том числе подсвеченные нули:
<font color="#ff0000">0</font>
$this->wordlist = file($filename);
//array_walk( $this->wordlist, create_function('&$w', '$w=trim($w);')); // замедляет работу пришлось отключить
Отправилось раньше. Может, так сработает получше?
$this->wordlist = array_map('trim', file($filename));
да и метод fetch можно сделать изящнее, если сократить два иф-елса до тернарного оператора:
аналогично и во вторйо части:
$strpos_func = $this->mb_support ? 'mb_strpos' : 'strpos';
if( $strpos_func($this->wordlist[$i], $this->enum[$
аналогично и во вторйо части:
думаю, значительно увеличить скорость можно держа в кеше готовый индексированный массив
$this->wordlist
скажем, первые два символа. пока введена одна буква ищем по «нуль»-массиву и всем массивам соответсвущих индексов, а когда введены две буквы — скорость поиска сокращается значительно.<?php
$array = array (
"\0" => array("а", "б", "в", "у", "ы", "о", "ж", "я", "с", "и"),
"a" => array (
"б" => array ("абрикос", "абракадабра"/*, ... */),
"в" => array ("аватара", "авоска"/*, ... */)
)
);
echo $array["\0"][1]; // б
?>
Да это же каноническая задачка для реализации на деревьях!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
T9 своими руками