Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Поиск в массиве
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Поиск в массиве

Страниц (1): [1]
 

1. Efex - 03 Марта, 2014 - 00:09:17 - перейти к сообщению
Добрый день.
Подскажите пожалуйста, как лучше осуществить поиск в массиве примерно в 150к ключей?? Поиск нужно делать регуляркой.

Прогнать через foreach получается долго, по времени занимает примерно 25 сек, может есть варианты более оптимальные??

За ранее большое спасибо.
2. Мелкий - 03 Марта, 2014 - 08:45:30 - перейти к сообщению
Что из себя представляют элементы массива и что - регулярка? А так же, откуда этот массив приходит.

Провёл тест, 150тыс. элементов, каждый является строкой около 4кб, матчится за 1.5 секунды.
3. Efex - 06 Марта, 2014 - 22:47:18 - перейти к сообщению
вот пример цикла, каждая строка примерно тоже 4 кб, но объем может быть разным
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ( $result as $val ) {
  3.         if ( preg_match('/тест.*блабла.*/usi', $val['text']) ) {
  4.                 $arr[] = $val['text']; 
  5.         }
  6. }
  7.  

 

Powered by ExBB FM 1.0 RC1