Посоветуйте как сделать.

Статус
В этой теме нельзя размещать новые ответы.
Опять же так не работает
$module = "gallery forum chat";
$module_arr = explode(" ", $module);
$mod = "forum";
$module1 = $module_arr[0];
if($module1 == $mod)
{
echo "rtyrty";
}
Всё работает, просто ничего что в $module_arr[0] содержится gallery а не forum?
 
PHP:
$module = "gallery forum chat";
$module_arr = explode(" ", $module);
$mod = "forum";
if(in_array($mod,$module_arr))
{
   echo "rtyrty";
}
 
PHP:
foreach($result as $moduleName)
{
  if($moduleName === $someModuleName)
   $flag = true;
}
if ($flag)
{
 //insert code here
}

$someModuleName = 'gallery' к примеру
 
По моему проще всего регулярным выражением обойтись. Вот например:
PHP:
<?php
	$modul = 'news,gallery,topsite';
	$mod = 'gallery';
	$patern = '/.*'.$mod.'.*/';
	if (preg_match($patern, $modul))
	{
		echo "it works!!!";
	}
?>
 
Тогда лучше так:
PHP:
    $modul = 'news,gallery,topsite'; 
    $mod = 'gallery'; 
    if (strpos($modul, $mod)) 
    { 
        echo "it works!!!"; 
    }
быстрее будет работать.

Вот только не учитывает, как и вариант с preg_match, того что название модуля может быть из 2х слов.

Потому рекомендую все таки узнать что такое in_array или использовать код Phrack, приведенный чуть выше.
 
in_array - самый универсальный и правильный вариант. Зачем тут регулярки?
Главное, чтобы структура строк была одинаковой всегда.
А еще ты писал, что из базы их вынимаешь, так можно сразу в запросе проверять.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху