如果数组是数组中的in_array()?

时间:2012-11-19 20:41:18

标签: php arrays

第一次尝试使用数组作为针和大海捞针在数组中查找内容。所以,2个数组的例子:

我动态形成的阵列:

Array ( 
    [0] => 
    [1] => zpp 
    [2] => enroll 
) 

我的静态比较数组:

Array ( 
    [0] => enroll 
) 

我的in_array() if语句:

if (in_array($location_split, $this->_acceptable)) {
   echo 'found';
}
$location_split; // is my dynamic
$this->_acceptable // is my static

但是从这个发现不打印出来,正如我所期待的那样?我究竟在这里失败了什么?

3 个答案:

答案 0 :(得分:3)

如果我理解你的话,你想看看第一个数组的条目是否存在于第二个数组中。

您可以查看array_intersect,它会返回您传递的所有数组中存在的数组。

$common = array_intersect($this->_acceptable, $location_split);
if (count($common)) {
    echo 'found';
}

如果该数组的计数至少为1,那么至少有一个共同的元素。如果它等于你的动态数组的长度,并且数组的值是不同的,那么它们都在那里。

当然,数组会告诉你哪些值匹配。

答案 1 :(得分:1)

因为您的数组中没有包含array('enroll')的元素(仅'enroll')。

您最好的选择是使用array_diff(),如果结果与原始数组相同,则找不到匹配项。

答案 2 :(得分:0)

您正在交换in_array(针和草堆)的参数。它必须是,

 if(in_array($this->_acceptable, $location_split))
{
  echo 'found';
 }

修改:尝试使用array_intersect

Demo