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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск регулярным выражением в массиве

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
login
Отправлено: 06 Ноября, 2009 - 16:04:24
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Такая проблемка:
Сканируем папку data получаем список .txt файлов, убираем .txt остаётся массив нужных нам имён.
Далее имея:
$data[]="имя 1 имя...";
$data[]="23 имя имя 2... ";
нужно найти $s="имя";
и вывести результат:
...рез.1...
...рез2....
...
можно ли это сделать регулярным выражением или какойто другой функцией?


-----
--Изучаю PHP--
 
 Top
Djin_dj
Отправлено: 06 Ноября, 2009 - 16:18:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Июнь 2008  
Откуда: Россия


Помог: 0 раз(а)




login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()
 
 Top
login
Отправлено: 06 Ноября, 2009 - 17:13:07
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Djin_dj пишет:
login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()

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


-----
--Изучаю PHP--
 
 Top
kuller
Отправлено: 06 Ноября, 2009 - 18:19:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




login пишет:
Djin_dj пишет:
login пишет:
Такая проблемка:
можно ли это сделать регулярным выражением или какойто другой функцией?


in_array()

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

сегодня через гугл искал статьи по регулярке, автор там как раз пример показывал какой тебе надо. у самого с регулярными выражениями проблема. попробуй через гугл найти
 
 Top
Ch_chov
Отправлено: 06 Ноября, 2009 - 18:43:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




strpos или mb_strpos для многобайтных кодировок
 
 Top
movEAX
Отправлено: 06 Ноября, 2009 - 21:48:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




preg_grep() ?


-----
армия.. самое убогое место
 
 Top
login
Отправлено: 07 Ноября, 2009 - 12:14:10
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Поискал в гугле нащёл очень хорошею статью, там есть такой пример, надо перебрать фамилии и даётся сразу шаблон для поиска
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


-----
--Изучаю PHP--
 
 Top
Champion Супермодератор
Отправлено: 07 Ноября, 2009 - 19:38:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




login, из того, что ты описал я ничего не понял. Пояснее можешь?
 
 Top
login
Отправлено: 07 Ноября, 2009 - 21:04:43
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Champion пишет:
login, из того, что ты описал я ничего не понял. Пояснее можешь?

есть массив:
$a[]="абвгд ийклм нопр";
$a[]="мнстпр епрст мксп";
...
что мне использовать чтобы найти $b="епрст"; в этом массиве.
Нужно перебрать массив и вернуть строки в которых есть совпадения с $b
яснее по-моему некуда Улыбка

(Отредактировано автором: 07 Ноября, 2009 - 21:09:52)



-----
--Изучаю PHP--
 
 Top
Champion Супермодератор
Отправлено: 07 Ноября, 2009 - 21:18:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




foreach ($a as $key => $value)
if (strpos($value, $b) !== false) $keys[]=$key;

for ($i=0; isset($keys[$i]); $i++) echo $a[ $keys[$i] ]
 
 Top
login
Отправлено: 07 Ноября, 2009 - 21:27:50
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




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])


-----
--Изучаю PHP--
 
 Top
JROUD
Отправлено: 07 Ноября, 2009 - 21:31:18
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




login пишет:
это то что мне нужно, только не совсем понятно isset($keys[$i])

Цикл работает если ключ существует.
 
 Top
login
Отправлено: 07 Ноября, 2009 - 21:40:15
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Всем огромное спасибо, работает так как надо.Не понимаю почему мне в голову сразу полезли регулярные выражения, оказалось всё намного проще)
Тема закрыта!


-----
--Изучаю PHP--
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB