内置支持在PHP中设置?

我正在寻找一种简单的方法来创build一个数组在PHP中,将不允许重复的条目,但允许其他集或数组的简单组合。

我最感兴趣的是这种function是否存在于这个语言中,因为写我自己并不困难。 我只是不想,如果我不需要。

只是一个想法,如果你使用数组键,而不是值,你可以肯定没有重复,也可以轻松地合并两个“套”。

 $set1 = array ('a' => 1, 'b' => 1, ); $set2 = array ('b' => 1, 'c' => 1, ); $union = $set1 + $set2; 

find了一个解决scheme: array_unique

只需将这些项添加到数组中,然后调用array_unique来删除重复项,最终达到相同的效果。 唯一的缺点是你必须记得打电话给它。 如果有一个实际的class级来pipe理,那会更好,但这对我的目的来说很好。

我也有这个问题,所以写了一个类: https : //github.com/jakewhiteley/php-set-object

正如所build议的那样,它扩展了ArrayObject并允许本地感觉插入/迭代/删除值,但是不需要在任何地方使用array_unique()

实现基于EMCA 6 JavaScript中的MDN JS文档集。

您可以使用array_combine删​​除重复项

 $cars = array("Volvo", "BMW", "Toyota"); array_push($cars,"BMW"); $map = array_combine($cars, $cars); 

在Laravel中, Collection类中有一个unique的方法可能会有所帮助。 从Laravel 文档 :

 $collection = collect([1, 1, 2, 2, 3, 4, 2]); $unique = $collection->unique(); $unique->values()->all(); // [1, 2, 3, 4]