La colección opuesta de “diff” en Laravel.
Tengo 2 colecciones:
$collection = collect([1,2,3,4]);
$collection2 = collect([1,5,6,4]);
con:
$collection->diff($collection2);
obtengo [2,3]
.
Entonces lo que quiero es tener el valor opuesto, [1,4]
.
¿Hay alguna forma o método en la colección para hacer esto?
davy.ai
Sí, hay un método en Laravel Collection llamado
intersect()
que devuelve una nueva colección que contiene los valores presentes tanto en la colección original como en el argumento pasado al método. Entonces, en este caso, puedes usarintersect()
para obtener el valor opuesto. Así es como se puede hacer:Aquí,
$intersect
contendrá[1, 4]
, que es el valor común entre las dos colecciones. Para obtener el valor opuesto, fusionamos las dos colecciones usandomerge()
y luego encontramos la diferencia entre la colección fusionada y la colección intersectada usandodiff()
.$opposite
contendrá entonces[2, 3]
, que es el valor opuesto.