Php 如何在一个数组中使用数组_intersect
我有这个数组,我想将每个关键项相互比较,得到与数组_intersect相似的结果。我写了这段代码,但它只是比较前两个关键项,我想比较所有关键项Php 如何在一个数组中使用数组_intersect,php,arrays,array-intersect,Php,Arrays,Array Intersect,我有这个数组,我想将每个关键项相互比较,得到与数组_intersect相似的结果。我写了这段代码,但它只是比较前两个关键项,我想比较所有关键项 如果希望初始数组中所有数组的交点,则需要执行元素与先前元素的交点: $arr = [ 0=>[...], 1=>[...], 2=>[...], ]; $intersection = array_pop($arr); foreach($arr as $el) $intersection = array
如果希望初始数组中所有数组的交点,则需要执行元素与先前元素的交点:
$arr = [
0=>[...],
1=>[...],
2=>[...],
];
$intersection = array_pop($arr);
foreach($arr as $el)
$intersection = array_intersect($arr, $intersection);
print_r($intersection);
请注意,在您的示例中,您有1+个空数组,因此交叉点将是一个空数组请提供一个最小的可复制示例,可能带有输入测试和所需输出。您知道,array_intersect需要两个数组来比较值,它将返回两个数组之间具有相似性的数组,现在,我想考虑每个键的值作为数组,并将其传递给ARARYAY交叉点进行比较。我的欲望输出?在所有值之间具有所有相似值的数组。换句话说,您只需要顶级数组的每个键下出现的值?我只能假设您希望忽略空数组,因为它们会导致每个交集都是空数组。但是您有两个空数组,与它们的交集显然是空数组,因此您确定要所有数组的交集吗?是的,完全正确!如何做到这一点?而且也没有任何空数组,在将其添加到最终结果之前将其删除
$arr = [
0=>[...],
1=>[...],
2=>[...],
];
$intersection = array_pop($arr);
foreach($arr as $el)
$intersection = array_intersect($arr, $intersection);
print_r($intersection);