我知道这与其他问题类似,但是。如果我们从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并给它pluck时,这会变成我使用"1","2","3“这样的正则数组时的输出。
如果我的意见错了,请纠正我。我正在学习。在朋友面前谢谢你
发布于 2020-10-02 03:53:56
in_array() it第二个参数请求。数组,而您给出的是object,这就是这个错误的原因
要解决此问题,您需要在laravel中使用toArray()函数
$x = Video::where('kursus_id', $data)->pluck('slug')->toArray();
然后,您可以使用in_array($value, $x)
https://stackoverflow.com/questions/64164335
复制相似问题