[英]How to get the difference between two multidimensional arrays of associative arrays in PHP?
[英]How to get the difference between two arrays of objects
例如,我有 2 個對象數組
$arr1 = [
(new MyClass())->setId(1),
(new MyClass())->setId(2),
(new MyClass())->setId(3),
];
$arr2 = [
(new MyClass())->setId(1),
(new MyClass())->setId(2),
];
我需要找出這 2 個 arrays 之間的區別,在這個例子中,我需要得到一個包含單個元素的數組,即 id == 3 的數組。
我知道我應該使用 array_udiff (也許),但我不知道如何。
以下邏輯可能會有所幫助:
<?php
class MyClass
{
public $id = null;
public function setId($id) {
$this->id = $id;
return $this;
}
}
$arr1 = [
(new MyClass())->setId(1),
(new MyClass())->setId(2),
(new MyClass())->setId(3),
];
$arr2 = [
(new MyClass())->setId(1),
(new MyClass())->setId(2),
];
$difference = array_udiff($arr1, $arr2,
function ($objOne, $objTwo) {
return $objOne->id - $objTwo->id;
}
);
Output:
Array
(
[2] => MyClass Object
(
[id] => 3
)
)
工作演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.