我有两个看起来像这样的多维数组:
Array
(
[0] => Array (
'id' => 3,
'other' => 'some string',
'timestamp' => 2000-01-01 00:00:00
),
[1] => Array (
'id' => 6,
'other' => 'another string',
'timestamp' => 1835-01-01 00:00:00
)
)
我试图找到一种方法来确定哪些元素出现在一个数组 ( $b
) 中,而不是另一个 ( $a
) 中,以及是否有任何元素的值发生变化。如果$a
是:
Array
(
[0] => Array (
'id' => 3,
'other' => 'some string',
'timestamp' => 2000-01-01 00:00:00
)
)
并且$b
是:
Array
(
[0] => Array (
'id' => 3,
'other' => 'some string',
'timestamp' => 2000-01-01 12:12:12
),
[1] => Array (
'id' => 4,
'other' => 'some string',
'timestamp' => 1900-01-01 01:12:23
)
)
然后函数应该返回:
Array
(
[0] => Array (
'id' => 3,
'other' => 'some string',
'timestamp' => 2000-01-01 12:12:12
),
[1] => Array (
'id' => 4,
'other' => 'some string',
'timestamp' => 1900-01-01 01:12:23
)
)
因为元素 withid = 3
已更改(timestamp
字段),并且元素 withid = 4
是新的并且不会出现在另一个数组中。
我一直在尝试用 来做到这一点array_udiff
,但我仍然不知道它是如何工作的(它似乎首先对两个数组进行排序,但是它是如何进行比较的呢?)。是array_udiff
正确的方法还是我应该编写自定义函数?