问题描述
我有3个数组。
$eldest_range
$second_range
$third_range
$eldest_range = range($start_year1,$end_year1);
print_r($eldest_range);
$second_range = range($start_year2,$end_year2);
print_r($second_range);
$third_range = range($start_year3,$end_year3);
print_r($third_range);
哪个返回:
<br> Array ( [0] => 2030 [1] => 2031 [2] => 2032 [3] => 2033 [4] => 2034 [5] => 2035 ) <Br> Array ( [0] => 2032 [1] => 2033 [2] => 2034 [3] => 2035 [4] => 2036 [5] => 2037 ) <br> Array ( [0] => 2034 [1] => 2035 [2] => 2036 [3] => 2037 [4] => 2038 [5] => 2039 ) <Br>
我想比较这些数组。检查彼此之间是否存在任何一种。因此,在上述情况下,1和2共享2032,而1,2和3共享2034。
我宁愿成对地检查它们,然后以三个为一组。 (1&2-1&3-2&3-1,2&3)
这就是我尝试过的。这是长子第二:
$result=array_intersect_assoc($eldest_range,$second_range);
print_r($result);
不返回任何内容:array()
而且我也尝试过。
$result=array_intersect_key($eldest_range,$second_range);
print_r($result);
仅返回整个$eldest_range
Array ( [0] => 2030 [1] => 2031 [2] => 2032 [3] => 2033 [4] => 2034 [5] => 2035 )
我使用错误的array_intersect()
吗?我只想查看2个数组中的任何值。和3个数组(如上所述)。
谢谢
解决方法
有时候,读一则manual(表示array_intersect_assoc
使用附加索引检查计算数组的交集
您需要此索引检查吗? 绝对不是。
您需要的是简单的array_intersect
:
$eldest_range = range(2030,2035);
$second_range = range(2032,2037);
$third_range = range(2034,2039);
print_r(array_intersect($eldest_range,$second_range)); // [2032,2033,2034,2035]
print_r(array_intersect($eldest_range,$second_range,$third_range)); // [2034,2035]