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 » » Вопросы новичков » Совпадения

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

1. etoYA - 23 Декабря, 2011 - 17:30:51 - перейти к сообщению
Есть ли аналог LIKE %$var% только по массиву?

К примеру:

PHP:
скопировать код в буфер обмена
  1. $array = array("test1", "test test","test");
  2. if (in_array("test",$array)) {
  3.      foreach ($array as $str) {
  4.           echo $str.'<br />';
  5.      }
  6. }
2. PATCH - 23 Декабря, 2011 - 17:38:18 - перейти к сообщению
думаю можно через регулярное выражение как нить составить аналог, а так вроде нету)
3. etoYA - 23 Декабря, 2011 - 17:39:19 - перейти к сообщению
PATCH, это печально)
4. dadli - 23 Декабря, 2011 - 18:04:05 - перейти к сообщению
etoYA

кажется вам что то такое надо:

PHP:
скопировать код в буфер обмена
  1. $str = "kakoeta slovo";
  2. $var = "slovo";
  3. if (preg_match("#".$var."#iu",$str)) {
  4.         echo "yes";
  5. }
5. etoYA - 23 Декабря, 2011 - 18:57:34 - перейти к сообщению
dadli, а как ее запихнуть в in_array?
6. EuGen - 23 Декабря, 2011 - 19:29:10 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rgLikes=array('foo','bar','baz');
  2.  
  3. $rgWheres=array();
  4. array_walk($rgLikes, function($sItem) use (&$rgWheres)
  5. {
  6.    $rgWheres[]='(`field` LIKE "%'.$sItem.'%")';
  7. });
  8. $sSQL = 'SELECT * FROM `table`'.(count($rgWheres)?' WHERE '.join(' OR ', $rgWheres):'');
7. CenapaTop - 23 Декабря, 2011 - 20:27:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $array = array("test1", "test test","test");
  2.  
  3. if ($arr = preg_grep('#test#', $array)) {
  4.      foreach ($arr as $str) {
  5.           echo $str.'<br />';
  6.      }
  7. }

 

Powered by ExBB FM 1.0 RC1