第一次尝试使用数组作为针和大海捞针在数组中查找内容。所以,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
但是从这个发现不打印出来,正如我所期待的那样?我究竟在这里失败了什么?
答案 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
。