查找数组数组中的公共值
我有一个数组的数组。
$a = [
[1, 2, 3],
[2, 3, 4],
[2, 4, 5]
];
如何找到所有数组中存在的共同元素?
在上面的示例数据中,我希望有一个包含值 2
的结果数组,因为它是所有行中出现的唯一值。
I have an array of arrays.
$a = [
[1, 2, 3],
[2, 3, 4],
[2, 4, 5]
];
How can I find common element which exist in all array?
In the above sample data, I'd expect to have a result array containing the value 2
because it is the only value that occurs in all rows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是我做的一个功能。它只是多维数组的参考。
它返回如下结果:
如果数组的值与引用数组匹配,则返回 true。
希望代码可以帮到你。
This is a function I have made. It's just a reference for a multidimensional array.
It returns a result like this:
It returns true if the value of an array matches with a reference array.
Hope the code can help you.
看看这里
array-intersect
。你可以这样使用它:
Have a look here
array-intersect
.You could use it like this:
您可以通过以下方式避免 foreach 循环
You can avoid foreach loop by
将行解压缩到单个
array_intersect()
调用中以确定所有行中出现的值。结果将保留数组第一行中合格值的键。代码:(Demo)
输出:
只要第一级键是数字,扩展元素就是一种有效的技术。如果第一级键不是数字,只需在传播之前调用 array_values() 重新索引键即可。
Unpack the rows into a single
array_intersect()
call to determine the values which occur in all rows. The result will retain the keys of the qualifying values in the first row of the array.Code: (Demo)
Output:
Spreading elements is a valid technique as long as the first level keys are numeric. If the first level keys are not numeric, just call
array_values()
to re-index the keys before spreading.