mercredi 13 mai 2020

How can i compare all atributes of 2 collections and return the different object on Laravel?

Basically I have collections of the same model (Item).

$items1 = Item::select('id','produto_id','endereco_id' ... )->where(...)get()
$items2 = Item::select('id','produto_id','endereco_id' ... )->where(...)get()

$items1 has a value such as:

[
0 => [
  'id'=> 2,
  'produto_id' => 4,
  'endereco_id' => 4,
], 
1 => [
  'id'=> 3,
  'produto_id' => 4,
  'endereco_id' => 5,
  ]
];

and $item2 (can have N objects):

[
0 => [
  'id'=> 3,
  'produto_id' => 4,
  'endereco_id' => 5,
  ]
];

In this example, the different object between them should be returned

[
  0 => [
  'id'=> 2,
  'produto_id' => 4,
  'endereco_id' => 4,
  ]
];

Can i do this without iterate of all objects comparing one by one attribute?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire