假设我有一个名为 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/