2013-02-17 75 views
0

我想检查数组中是否存在多个值(例如:5110)return是true。 (不使用循环)检查数组中是否存在多个值

,因为我想加载一个页面,如果换来的是真正的

,因为我不从循环使用:

if(in_array('5' OR '110', array('5,4,2,66,12,110'))){ 
    echo 'true';//Load page 
}else{ 
    echo 'false'; 
} 

怎么回事?

回答

1
$a=array(5,4,2,66,12,110); 
if(in_array('5',$a) OR in_array('10',$a)){ 
    echo 'true';//Load page 
}else{ 
    echo 'false'; 
} 
6
if(array_intersect(array('15', '110'), explode(',', '5,4,2,66,12,110'))){ 
    echo 'true';//Load a page 
}else{ 
    echo 'false'; 
} 
+0

我有一个新的数组错误,请参阅:HTTP:// codepad.org/eHTkMnrH – 2013-02-17 19:05:38

+0

@TaylorGomez工作原理:http://codepad.org/e4uUgGw8如果你使用'var_export'而不是'var_dump'想要获取数组的字符串表示形式。 – meze 2013-02-17 19:24:48

+0

我得到这个PHP代码的输出数组:http://codepad.org/OucFsUHH并在这里解释它:http://stackoverflow.com/questions/14920117/combine-array-php/ ????? – 2013-02-17 20:13:49

1

如果你正在寻找一个快速的方法使用这样的:

if (preg_match ('/(^|,)(5|110)(,|$)/','5,4,2,66,12,110')) 
    return true; 
else 
    return false; 

编辑

if (preg_match ("/(^|,)(" . implode ('|', $needles) . ")(,|$)/", implode (',', $haystack))) 
    return true; 
else 
    return false; 
+0

数组,而不是字符串 – 2013-02-17 18:53:22

+0

您可以使用implode将数组合并到带有逗号的字符串中。 – Boynux 2013-02-17 19:28:17

+0

当然,但这不是你的'回答' – 2013-02-17 19:29:36