2016-08-17 3 views
0

В моем коде я хочу заменить следующее:Сравнение динамических массивов вместе с, если потом еще заявление

if($file['domain']=="VALUE" || $file['domain']=="VALUE" || $file['domain']=="VALUE" || $file['domain']=="VALUE"){} 
else{} 

с чем-то вроде этого, что можно изменить в более общем файле конфигурации:

$domains_to_exclude="VALUE,VALUE,VALUE,VALUE"; 

Значения обоих массивов меняются и меняются. Я хочу сделать это, если $file['domain'] соответствует значению domains_to_exclude, чтобы пропустить его.

Я иду в правильном направлении, пытаясь что-то вроде этого. Пока у меня не было никакого успеха.

$myArray = explode(',', $domains_to_exclude); 
$count = count($file); 
for ($i=1; $i<$count; $i++) 
{ 
    if ($myArray[$i] !== $file['domain']) 
    { 
    $domain=$file['domain']; 
    $domainn = str_replace("", "", $domain); 
    echo'<option value="'.$domain.'">'.$domainn.'</option>'; 
    } 
    else {} 
} 
+1

'in_array' функция. –

ответ

1
$myArray = explode(',', $domains_to_exclude); 
if (!in_array($file['domain'], $myArray)) { 
    // Domain is ok, process file 
} 

in_array ($ ул, $ обр) проверяет, является ли какой-либо из значений в $ обр равна $ ул.

А также вам не нужно, чтобы этот блок блокировался, если он пуст. Но это тоже не повлияет на ваш код.

1

вы можете сделать что-то вроде этого:

$domains_to_exclude = array(...); //make an array of your "VALUES" 

$file = array('foo', 'bar'); // your $file array 

if(count(array_intersect($domains_to_exclude, $file)) > 0){ 
    // at least a match was found 
} 
Смежные вопросы