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]   

> Без описания
vadka
Отправлено: 20 Ноября, 2015 - 16:40:28
Post Id


Новичок


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


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




Здравствуйте!
Помогите пожалуйста решить проблему.
Есть массив примерно такого вида:
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2. "string1" => array("text1 text2 text3", "text4 text5 text6", "text7 text8 text9"),
  3. "string2" => array("text10 text11 text12", "text13 text14 text15", "text16 text16 text17"),
  4. "string3" => array("text18 text19 text20", "text21 text22 text23", "text24 text25 text26"),
  5. );


Что бы осуществить поиск по нему использую функцию:
PHP:
скопировать код в буфер обмена
  1. $needle = "text1";
  2. $result = array_filter($arr, function($innerArray){
  3.     global $needle;
  4.     return in_array($needle, $innerArray);    //Поиск по всему массиву
  5.     return ($innerArray[0] == $needle); //Поиск по первому значению
  6. });


Всё работает, если в элементе массива находится только "text1", но задача состоит в поиске по маске, то есть найти например "text14". Помогите подправить код.
 
 Top
andrewkard
Отправлено: 20 Ноября, 2015 - 16:51:01
Post Id


Участник


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


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




 
 Top
Мелкий Супермодератор
Отправлено: 20 Ноября, 2015 - 16:51:10
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. - $result = array_filter($arr, function($innerArray){
  2. -    global $needle;
  3. + $result = array_filter($arr, function($innerArray) use($needle) {

Но к вопросу это не относится.

В прростом случае mb_strpos в помощь.


-----
PostgreSQL DBA
 
 Top
vadka
Отправлено: 20 Ноября, 2015 - 17:04:46
Post Id


Новичок


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


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




andrewkard
Не могу разобраться куда это вставить.
(Добавление)
Все, разобрался, спасибо большое andrewkard.

Так же спасибо Мелкий за подправку.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB