1

第一次尝试使用数组作为针和干草堆在数组中查找某些东西。因此,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

但是从这个发现没有打印出来,正如我所期望的那样?我到底在这里失败了什么?

4

3 回答 3

3

如果我对您的理解正确,您想查看第一个数组的条目是否存在于第二个数组中。

您可能会查看array_intersect,它会返回一个包含在您传递给它的所有数组中的东西的数组。

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

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

而且,当然,该数组将能够告诉您哪些值匹配。

于 2012-11-19T20:46:28.653 回答
1

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

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

于 2012-11-19T20:43:38.167 回答
0

您正在交换in_array(needle & haystack) 的参数。它需要,

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

编辑:尝试使用array_intersect.

演示

于 2012-11-19T20:45:26.773 回答