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
很高兴帮助你。 –