Autor Zpráva
Sventek
Profil
Ahoj, chtěl bych se s vámi poradit jak nejefektivněj prohledávat pole o zhruba tisíci řádcích, nejde mi o array_search, to hledá jenom přesně zadané řádky, ale já chci hledat třeba jenom jedno slovo, které se vyskytuje v několika různých větách např. v pěti řádcích.

Přeházet to do databáze by asi bylo nejlepší řešení, ale rád bych se zeptal, zda by nebyl srovnatelně rychlý i jiný postup bez sql.
Taps
Profil
Sventek
co tak in_array. to by nešlo ?
Mastodont
Profil
zda by nebyl srovnatelně rychlý i jiný postup bez sql

IMHO nebyl. Ale když už chceš pole, tak sloučit prvky do řetězce a poté preg_match.
peta
Profil
Sventek
Pokud to chces delat casto, nejefektivnejsi se mi jevi databaze + fulltext. Coz ti udela to, ze projde zadane sloupce a vytvori na vsechna slova indexy.
Jinak cz.php.net/array jsou veskere funkce pro array.

Taps :)
"array_search, to hledá jenom přesně zadané řádky"
"ale já chci hledat třeba jenom jedno slovo, které se vyskytuje v několika různých větách"
"co tak in_array. to by nešlo ?" ... jestli to treba nehleda presny text? :)
Sventek
Profil
Díky, ty funkce na php.net jsem si procházel a nic schopného jsem neviděl, ale je dost možné že sem něco přehlídl nebo zasklil. Jde o to, že mám asi tisíc texťáků ve velikosti od 100 B do 300 kB, ve kterých mám udělat hledání, ale asi bude vážně daleko efektivnější investovat ten čas do překopání do databáze než do indexace a hledání přes další texťák (tu indexaci jsem udělal tak, že se vše uloží do jednoho souboru pro rychlejší načítání).

Díky za konzultaci

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0