我知道这与其他问题类似,但是。 如果我们从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和$ z时 $ x = [“ 2”] $ z = [“ 1”,“ 2”,“ 3”] 就是这样。输出是1&3 我认为,当我使用db并采摘时,当我使用像[“ 1”,“ 2”,“ 3”]这样的常规数组时,它将变成相同的输出。
如果我的看法有误,请纠正我。正在研究中。在队友们之前感谢
答案 0 :(得分:1)
in_array()它是第二个参数要求。数组,而您给出的对象就是这个错误的原因
要解决此问题,您需要在laravel中使用toArray()函数
$x = Video::where('kursus_id', $data)->pluck('slug')->toArray();
然后您可以使用in_array($value, $x)