php - Laravel 找到表内缺失的行

标签 php laravel eloquent

假设我有一个名为 TheSeriesEpisodes 的表,由复合键(seriesID、episodeNo)组成:

seriesID | episodeNo | otherField
---------------------------------
1         1           blabla
1         4           blabla
1         5           blabla
1         6           blabla
2         1           blabla
2         2           blabla
2         3           blabla
2         5           blabla

如您所见,有 2 个系列(系列 1 和系列 2)。 系列 1 缺少第 2 集和第 3 集,系列 2 缺少第 4 集。

如何获取特定电视剧的所有缺失剧集的列表。

我想不出任何方法停在这里:

TheSeriesEpisodes::

最佳答案

让我们找到序列 1 丢失的号码

$array = TheSeriesEpisodes::where('seriesID', 1)->pluck('episodeNo')->toArray(); 

现在,我们可以使用 range 创建一个新数组。因此,剧集起始编号默认为 1,我们可以使用 max($array)

轻松找到结束编号
$range = range(1, max($array));

使用array_dif我们可以获得丢失的元素:

$missing = array_diff($range, $array);

关于php - Laravel 找到表内缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41839558/

相关文章:

PHP Laravel Passport OAuth2 始终在 protected 路由上返回未经身份验证的信息

Laravel Eloquent Lazy Eager 加载计数

PHP:从变量实例化一个类奇怪地失败了

php - 返回 Laravel 中的父模型列

php - Laravel/Lumen 中两列之间的 SQL

php - 上传图片名称

PHPExcel 损坏的文件下拉列表不起作用 Windows Excel 数据验证

PHP - 如何将命名变量放入字符串中,并在变量之前定义字符串

拉拉维尔 : Get permissions list for a user through roles table with belongtomany

php - 禁用 laravel 的内置错误屏幕