2012-02-11 3 views
-1

я был за столько сообщений в Интернете, пытаясь разобраться в этом ....Поиск части строки в массиве

я интегрируя небольшую функцию поиска в PHP скрипт ....

я пробовал много сценариев, включая in_array (работает только для полного совпадения) и array_search

и ничего, кажется, работает ....

у меня есть скрипт, который создает массив с именами файлов (все в формате " Random-Name-1.ext ") но сценарий удаляет файл, расширение, оставив только имена файлов ....

всех имен файлов отделено слово в слово с -

все слова имеют первую заглавную букву ....

массив называется $files1;

строка поиска называется $search_string;

, что им ищут бы вдоль линий контура Еогеаспа, чтобы проверить, если строку поиска содержатся в любой части каждого значения массива, а если он есть, поставить полную стоимость массива в другой массив называется $search_results

в следующей части моего сценария постраничной нуждается в массив $search_results эхо каждого из имен файлов и отображать их 10 на странице ....

надеюсь, что это будет достаточно информации, ив работаю на нем в течение веков и ломают мой мозг пытается найти правильный код ....

спасибо в adva сть

.......... ...........

EDIT .....

....... . .......

получил сценарий работы с preg_grep ..... но я теперь есть небольшая проблема ....

скрипта до поиска код предназначен для получения URL из страница поиска с q = {строка поиска}

и затем обрезать это так, что я просто строка SERACH как переменная .....

я использовать str_replace, чтобы изменить URL страницы с

/games-search?q={search-string} 

в {поиск струн}

это прекрасно, но скрипт для разбивки результатов на 10 страниц добавляет? Page = 2 к URL.

так, когда я нажимаю стр.2, то str_replace изменить URL для поиска строки не работает в настоящее время, как новая страница URL для страницы 2 является

/games-search?page=2&q={search-string} 

я пытался сделать еще str_replace к изменению последовательные страницы ссылаются только на строку поиска, но у меня возникают проблемы с регулярным выражением, чтобы определить номер страницы .....

номера страниц варьируются от 1 до 50 (не более 99, поэтому 2 цифры будут будет достаточно, чтобы соответствовать ....

У меня есть t водиться снова и снова сегодня, чтобы получить это регулярное выражение правильно, но я не уверен, если я буду об этом правильном пути .....

вот мое последнее усилие ....

/games-search?page=(^[0-9][0-9]+)& 

это то, что я пытаюсь заменить на «» (например, ничего)

как мне нужны только данные после символа & в URL-адресе ... и thats ЕСЛИ url даже содержит это (для exapmple the first когда url не содержит символ & - если url не содержит символ &, я не хочу его изменять ING, как я уже есть данные мне нужно)

еще раз спасибо, если кто-нибудь может помочь

решил не разбиваться результаты каждого поиска в Ther никогда не будет больше, чем примерно 15 результатов ... .. это нормально, но я собираюсь реализовать длину поиска miminum в 4 символа, поэтому он не воспитывает 500 результатов для буквы A :)

+2

Вы получили 16 ответов на ваши 10 предыдущих вопросов (я посчитал). Вам нужно пересмотреть свои предыдущие вопросы и при необходимости принять ответы, или люди перестанут отвечать на ваши вопросы. – rdlowrey

ответ

3

Поиск массива для подстрочного соответствия? preg_grep

Затем сделать что-то вроде

$search_results = ...; 
$paginated = array(); 
for ($i = 0; $i < count($search_results); $i++) 
{ 
    if ($i % 10 == 0) $paginated[$i + 1] = array(); 
    $paginated[$i][] = $search_results[$i + 1]; 
} 

Затем print_r этот массив, и вы увидите, у вас есть что-то мертвое легко работать.

+0

Возможно, просто получить доступ к записям из $ search_results [$ page * PAGE_SIZE] до $ search_results [($ page + 1) * PAGE_SIZE - 1] будет достаточно, чтобы отобразить номер страницы $ page. –

+0

Абсолютно, оба работают. Я пошел с этим только потому, что тогда все элементы внутри страницы могут легко зацикливаться на любом виде цикла (особенно foreach), но ничего плохого ни с одним из методов – Joe

+0

Хорошая точка. Просто хочу поделиться своим решением, не добавив полного ответа;) –

Смежные вопросы