SF上有許多線程,用戶回答如何返回PHP數組的唯一值。普遍的回答是:從PHP返回一個數組中的唯一值,而不保留副本的第一個副本
$arrWtihDuplicates = ['a', 'a', 'a', 'b', 'c']
array_unique($arrWtihDuplicates) // will return ['a', 'b', 'c']
有沒有辦法不具有a
回來呢?
這是爲什麼這種行爲可能會帶來問題:
讓我們回過頭來$arrWtihDuplicate
。如果我只想返回此數組中的重複值,該怎麼辦?這是行不通的:
$arrWtihDuplicates = ['a', 'a', 'a', 'b', 'c'];
$withoutDuplicates = array_unique($arrWithDuplicates);
var_dump(array_diff($arrWtihDuplicates, $withoutDuplicates));
以上將返回一個空數組 - 兩個陣列共享相同的值,所以array_diff
不會看到它們之間的差異。
所以總結起來,我怎麼可以返回沒有任何重複,使數組值:
['a', 'a', 'a', 'b', 'c']
成爲['b', 'c']
,或者相反
['a', 'a', 'a', 'b', 'c']
變得['a', 'a', 'a']
- 已經這樣做了 array_diff(['a', 'a', 'a', 'b', 'c'], ['a', 'a', 'a'])
將返回只有真正唯一 - b
和c
。
在PHP中進行這樣的計算似乎過於複雜。
偉大的答案,謝謝! – luqo33
很高興幫助你。 –