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 » PHP » Программирование на PHP » Поиск регулярным выражением в массиве

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

1. login - 06 Ноября, 2009 - 16:04:24 - перейти к сообщению
Такая проблемка:
Сканируем папку data получаем список .txt файлов, убираем .txt остаётся массив нужных нам имён.
Далее имея:
$data[]="имя 1 имя...";
$data[]="23 имя имя 2... ";
нужно найти $s="имя";
и вывести результат:
...рез.1...
...рез2....
...
можно ли это сделать регулярным выражением или какойто другой функцией?
2. Djin_dj - 06 Ноября, 2009 - 16:18:06 - перейти к сообщению
login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()
3. login - 06 Ноября, 2009 - 17:13:07 - перейти к сообщению
Djin_dj пишет:
login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()

на сколько я понял, in_array() мне не подайдёт по тому что у меня будет массив например с "фамилия имя отчество" а мне нужно найти только фамилию.
4. kuller - 06 Ноября, 2009 - 18:19:15 - перейти к сообщению
login пишет:
Djin_dj пишет:
login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()

на сколько я понял, in_array() мне не подайдёт по тому что у меня будет массив например с "фамилия имя отчество" а мне нужно найти только фамилию.

сегодня через гугл искал статьи по регулярке, автор там как раз пример показывал какой тебе надо. у самого с регулярными выражениями проблема. попробуй через гугл найти
5. Ch_chov - 06 Ноября, 2009 - 18:43:14 - перейти к сообщению
strpos или mb_strpos для многобайтных кодировок
6. movEAX - 06 Ноября, 2009 - 21:48:41 - перейти к сообщению
preg_grep() ?
7. login - 07 Ноября, 2009 - 12:14:10 - перейти к сообщению
Поискал в гугле нащёл очень хорошею статью, там есть такой пример, надо перебрать фамилии и даётся сразу шаблон для поиска
preg_match("/([^\s]+)\s+([^\s.])[^\s.]*(?:\s|\.)([^\s.])[^\s.]*/",$income_str,$out_arr);
print_r($out_arr);
кому интересно читайте http://phpclub[dot]ru/detail/article/regexp_1
8. Champion - 07 Ноября, 2009 - 19:38:23 - перейти к сообщению
login, из того, что ты описал я ничего не понял. Пояснее можешь?
9. login - 07 Ноября, 2009 - 21:04:43 - перейти к сообщению
Champion пишет:
login, из того, что ты описал я ничего не понял. Пояснее можешь?

есть массив:
$a[]="абвгд ийклм нопр";
$a[]="мнстпр епрст мксп";
...
что мне использовать чтобы найти $b="епрст"; в этом массиве.
Нужно перебрать массив и вернуть строки в которых есть совпадения с $b
яснее по-моему некуда Улыбка
10. Champion - 07 Ноября, 2009 - 21:18:54 - перейти к сообщению
foreach ($a as $key => $value)
if (strpos($value, $b) !== false) $keys[]=$key;

for ($i=0; isset($keys[$i]); $i++) echo $a[ $keys[$i] ]
11. login - 07 Ноября, 2009 - 21:27:50 - перейти к сообщению
Champion пишет:
foreach ($a as $key => $value)
if (strpos($value, $b) !== false) $keys[]=$key;

for ($i=0; isset($keys[$i]); $i++) echo $a[ $keys[$i] ]

это то что мне нужно, только не совсем понятно isset($keys[$i])
12. JROUD - 07 Ноября, 2009 - 21:31:18 - перейти к сообщению
login пишет:
это то что мне нужно, только не совсем понятно isset($keys[$i])

Цикл работает если ключ существует.
13. login - 07 Ноября, 2009 - 21:40:15 - перейти к сообщению
Всем огромное спасибо, работает так как надо.Не понимаю почему мне в голову сразу полезли регулярные выражения, оказалось всё намного проще)

 

Powered by ExBB FM 1.0 RC1