我有两个多维数组,无论是这个样子:如何正确使用array_udiff()?
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
)
)
因为id = 3
元素已经改变(在timestamp
场)和元素id = 4
是新的,并且不会出现在其他数组中。我一直试图做到这一点与array_udiff
,但我仍然不知道它是如何工作的(它似乎首先排序两个数组,但它是如何做比较?)。是array_udiff
正确的方法,还是我应该写一个自定义函数?
回调函数不是必须返回所有的'0','1'和'-1'吗? – n0pe
@MaxMackie如果第一个参数分别小于,等于或大于第二个参数,则回调函数必须返回负数,0或正数。但是对于你的文档,如果参数相等(返回0)或不同(返回正数或负数),则只需返回。 – Stratford
但是如何处理/解释-1,0和1? 1是包含,0和-1是否排除? – ahnbizcad