|
|
|
| Есть массив, содержащий такие элементы:
$m_vse[] = «Синий лед»;
$m_vse[] = «Три толстяка»;
$m_vse[] = «Авиационный керосин»;
$m_vse[] = «Апельсин»;
$m_vse[] = «Месяц апрель»;
|
И есть однословный образец
Требуется сформировать второй массив, состоящий из расположенных в любом порядке строк первого массива, включающих в себя образец. Что бы получилось так:
$m_sl[0] = «Синий лед»;
$m_sl[1] = «Авиационный керосин»;
$m_sl[2] = «Апельсин»;
|
Последовательная обработка элементов массива
for ($i=0; $i < count($m_vse); $i++)
if (strstr(strtolower($m_vse[$i]), strtolower($slovo)))
$m_sl[] = $m_vse[$i] ;
|
не устраивает по той причине, что занимает слишком много времени, ибо массив $m_vse довольно большой. Хотелось сделать это как-то иначе. Витает идея использовать array_map, но не получается… | |
|
|
|
|
|
|
|
для: Владимир55
(25.04.2010 в 12:35)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Тень*
(25.04.2010 в 13:28)
| | Использовать базу данных! | |
|
|
|
|
|
|
|
для: serenya1983
(25.04.2010 в 13:33)
| | Да, с базой должно хорошо получиться. Но ради этой одной оперции подключать её не хочется.
А нет ли решения без базы? | |
|
|
|
|
|
|
|
для: Владимир55
(25.04.2010 в 15:09)
| | >А нет ли решения без базы?
В вашем случае база - лучшее решение. | |
|
|
|
|
|
|
|
для: Владимир55
(25.04.2010 в 15:09)
| | Неясно что тут может тормозить вообще. Попробуй вынести strtolower($slovo) за цикл, strpos() вместо strstr() применять.
Для array_filter() придётся использовать global ещё. Я не знаю почему, но у меня это сразу вызывает отторжение. | |
|
|
|