Laravel Collection Diff не возвращает разницу между двумя коллекциями

Я пытаюсь получить разницу между двумя коллекциями с помощью функции diff laravel, но не знаю, почему он всегда возвращает 0 разностных элементов, хотя $col1 содержит 6 элементов, а $col2 содержит 5 элементов, Мой код:

$col1=collect([$data['result']->items()]);
$col2=collect([$data['erp_data']]);
$diff=$col1->diff($col2);
dd($col1,$col2,$diff);

и он возвращается

результат

Нужна помощь, спасибо.

0 ответов

2 коллекции одинаковы. Это массив с одним элементом, который содержит в себе другой массив. diff Метод сравнивает коллекцию, чтобы увидеть основные элементы, и обнаруживает, что оба являются массивами с 1 элементом. Вот почему нет различий.

Вы должны удалить окружающие квадратные скобки [] на создание вашей коллекции.

то есть. $col2 = collect($data['erp_data']);

Другие вопросы по тегам