0

我知道这与其他问题相似,但是。如果我们从 db 获取数据数组并尝试比较这些数据怎么办?

$x = Video::where('kursus_id', $data)->pluck('slug');
$z = Video::where('kelas_id', $data_id_kelas)
    ->where('mapel_id', $data_id_mapel)
    ->pluck('slug');

foreach ($z as $value) {
    if (in_array($value, $x)) {
    
    } else {
         echo $value.'<br>';
    }
}

这给我一个错误,例如in_array() expects parameter 2 to be array, object given

但是当我尝试用 $x=["2"] $z=["1","2","3"] 更改 $x 和 $z 时,那就行了。并且输出是 1 和 3 我认为当我使用 db 并给它采摘时,当我使用像 [“1”、“2”、“3”] 这样的常规数组时,这将成为相同的输出。

如果我的意见有问题,请纠正我。cz我在学习。先谢谢小伙伴

4

1 回答 1

1

in_array()它是第二个参数请求。数组,你给对象,这就是为什么这个错误

要解决此问题,您需要在 laravel中使用toArray()函数

$x = Video::where('kursus_id', $data)->pluck('slug')->toArray();

那么你可以使用in_array($value, $x)

于 2020-10-02T03:53:56.037 回答