¿Compatibilidad incorporada para juegos en PHP?

Estoy buscando una manera simple de crear una matriz en php que no permita entradas duplicadas, pero que permita la fácil combinación de otros conjuntos o matrices.

Lo que más me interesa es si existe tal característica en el idioma porque escribir la mía no sería difícil. Simplemente no quiero si no es necesario.

    Solo una idea, si usa las teclas de matriz en lugar de valores, se asegurará de que no haya duplicados, y esto permite una fácil fusión de dos “conjuntos”.

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

    Encontré una solución: array_unique

    Simplemente agregue los elementos a una matriz, luego llame a array_unique para eliminar duplicados, lo que finalmente logra el mismo efecto. El único inconveniente es que debes recordar llamarlo. Sería mejor si hubiera una clase real para administrar eso, pero esto está bien para mis propósitos.

    Puede usar array_combine para eliminar duplicados

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

    También tuve este problema, así que escribí una clase: https://github.com/jakewhiteley/php-set-object

    Como se sugiere, extiende y ArrayObject y permite la inserción / iteración / eliminación de valores nativos, pero sin utilizar array_unique() ninguna parte.

    La implementación se basa en MDN JS Docs for Sets en EMCA 6 JavaScript.

    En Laravel hay un método unique en la clase de Collection que puede ser útil. De la documentación de Laravel:

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