php - 比较两个和三个数组中包含的相同值的数组中的任何位置
问题描述
我有 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 个数组(如上)。
谢谢
解决方案
有时阅读手册非常有用,手册中说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]
推荐阅读
- pyspark - 获取 pyspark 列中唯一值的数量
- html - 当图像在 html 中的文本之后列出时,在图像周围环绕文本
- python - 在没有 Python 的情况下将 Bokeh 应用程序部署到公众
- python-3.x - 简化 if else 中的多个 or 语句
- kernel - 什么会导致 kopen 挂起?
- java - 使用 REST API 将数据库与其他 REST API 解耦
- python - Python SQLalchemy order_by 1.9 和 1.10 的顺序正确吗?
- java - 如何从 6 个数字循环中获取前 3 个随机数?
- sendgrid - 我可以永久拒绝 SendGrid 入站解析消息,以便不尝试重新传递吗?
- php - 上传文件后如何运行PHP函数