我有两个数组,其中包含一些数据,用于定义用户是否可以访问本文。该文章将被标记到客户端,即ClientA,ClientB和用户在创建时将被分配客户端访问标记。我想要比较两个数组,如果他们至少有一个我将给他们访问,如果没有,那么他们将被重定向。
数组的结构如下:
array(1) {
[0] "ClientA"
}
array(3) {
[0] "ClientA"
[1] "ClientB"
[2] "ClientC"
}
我试图使用in_array,但这已经返回为假,例如。
//$articleClient is the array with one value and $client is the
//array with 3 values
if (!in_array($articleClient, $client)) {
dd('no access');
}
关于如何比较数组以查看是否存在至少一个值的任何想法?
答案 0 :(得分:2)
在php中使用函数array_intersect
函数。例如:
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2)
if (count($result)>=1)
{
//give access to the user
}
答案 1 :(得分:1)
使用array_intersect()
功能
答案 2 :(得分:1)
$result = array_intersect($array1, $array2);
if(sizeof($result)>0)
{
//match
}else
{
//no match
}
答案 3 :(得分:1)
试试这个
$common = array_intersect($articleClient, $client)
if (count($common) < 1) {
dd('no access');
}