我想在我的控制器中得到这两个数组之间的差异.如果我使用array_diff()函数,它会给我一个错误array_diff(): Argument #1 ($array) must be of type array, Illuminate\Support\Collection given.

$newListOfArray = array_diff($newArrayTags, $oldArrayTags);

这两个数组肯定都是array.

我的$oldArrayTagsarray.

#items: array:2 [▼
   0 => "egg"
   1 => "beef"
]

我的$newArrayTagsarray.

#items: array:4 [▼
   0 => "egg"
   1 => "beef"
   2 => "chicken"
   3 => "sausage"
]

当我判断Laravel 9 Array Helpers Documentation时,我找不到任何可以提供差异的数组帮助器.

问题:

  1. 如果我使用array_diff,但它是一个数组,为什么我会收到一个错误?
  2. 在Laravel 9中,我可以使用哪个数组帮助器来计算两个数组之间的差异?

推荐答案

它看起来像一个集合,而不是数组 您可以使用集合比较方法https://laravel.com/docs/9.x/collections#method-diff

$newArrayTags->diff($oldArrayTags)

如果您愿意,也可以使用ARRAY_DIFF:

$newListOfArray = array_diff($newArrayTags->toArray(), $oldArrayTags->toArray());

Laravel相关问答推荐

Laravel使用PostgreSQL显示";`try 读取null`上的属性,而不是SQL错误消息

到查询构建器的MySQL查询

当两个外键都在同一个表上时创建直通关系

如何避免谷歌翻译翻译:参数

如何在 laravel 中为另一个用户 session()->forget('cart')?

所有 POST 请求上的 Laravel 4 CSRF

Laravel 5.2 无法打开 laravel.log

如何在 Laravel 中使用内存数据库的完整测试套件之前迁移和 seeder ?

Laravel 保存一对多关系

路由中间的可选参数

如何在 Laravel 5 中验证当前、新密码和新密码确认?

加载模型的所有关系

控制器外部的 Laravel 访问请求对象

禁用Eager的关系

Laravel:方法[显示]不存在

在 laravel 中安装 vue 3.0

在我的编辑器中管理上传文件的最佳方式?

Laravel 4 - 文件上传

Laravel 如何在 Eloquent 模型中添加自定义函数?

Laravel 4 控制器模板/Blade - 正确的方法?