@@ 161-174 (lines=14) @@ | ||
158 | * @param \ArrayAccess|array $items |
|
159 | * @return static |
|
160 | */ |
|
161 | public function diff($items) |
|
162 | { |
|
163 | $diff = new static; |
|
164 | ||
165 | $dictionary = $this->getDictionary($items); |
|
166 | ||
167 | foreach ($this->items as $item) { |
|
168 | if (!isset($dictionary[(string) $item->getKey()])) { |
|
169 | $diff->add($item); |
|
170 | } |
|
171 | } |
|
172 | ||
173 | return $diff; |
|
174 | } |
|
175 | ||
176 | /** |
|
177 | * Intersect the collection with the given items. |
|
@@ 182-195 (lines=14) @@ | ||
179 | * @param \ArrayAccess|array $items |
|
180 | * @return static |
|
181 | */ |
|
182 | public function intersect($items) |
|
183 | { |
|
184 | $intersect = new static; |
|
185 | ||
186 | $dictionary = $this->getDictionary($items); |
|
187 | ||
188 | foreach ($this->items as $item) { |
|
189 | if (isset($dictionary[(string) $item->getKey()])) { |
|
190 | $intersect->add($item); |
|
191 | } |
|
192 | } |
|
193 | ||
194 | return $intersect; |
|
195 | } |
|
196 | ||
197 | /** |
|
198 | * Get a dictionary keyed by primary keys. |