我有兩個多維數組,無論是這個樣子:如何正確使用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