内置支持在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]