将动态数组与if then else语句进行比较

时间:2016-08-17 19:42:30

标签: php arrays compare

在我的代码中,我想替换以下内容:

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 {}
}

2 个答案:

答案 0 :(得分: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
 }

答案 1 :(得分:1)

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

in_array($ str,$ arr)检查$ arr中的任何值是否等于$ str。

而且,如果它是空的,你不必在那里阻止。但它也不会对你的代码产生负面影响。