我有三个阵列,每个阵列都有SimpleXML对象。它们的结构如下:
Array
(
[0] => SimpleXMLElement Object
(
[post_id] => 1476
[name] => Johnson Fisheries Ltd.
[owner] => Mr. John Johnson
)
)
我希望能够比较所有3个数组并过滤掉差异,以便结果只包含所有3个数组中相同的元素。
例如:
Array1
(
[0] => 1476
[1] => 1560
[2] => 1342
)
Array2
(
[0] => 2454
[1] => 1476
)
Array3
(
[0] => 3412
[1] => 7512
[2] => 2454
[4] => 1476
)
结果数组只包含[0] => 1476
最好的方法是什么?我已经找到了一种能够以这种方式比较数组的函数,但我没有运气。有什么想法吗?
非常感谢任何帮助!
答案 0 :(得分:3)
最佳选择是使用php的内置array-intersect功能。
$answer = array_intersect($Array1,$Array2,$Array3);
答案 1 :(得分:0)
创建一个新数组。
将第一个数组的所有元素添加到新数组中。
遍历所有其他元素,找出新阵列中哪些元素在要比较的数组中。删除所有未出现的元素。
在迭代结束时,您拥有所需的数组。
答案 2 :(得分:0)
循环遍历第一个数组,使用in_array在第2个和第3个数组中进行检查,如下所示:
foreach($array1 as $post_id) {
if(in_array($post_id, $array2) && in_array($post_id, $array3)) {
// We have a winner!
}
}