in_array() 期望参数 2 为数组,对象给定
in_array() expects parameter 2 to be array, object given
我知道这与其他问题类似,但是。
如果我们从 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 并给它 pluck 时,当我使用像 ["1","2","3"] 这样的常规数组时,这将变成相同的输出。
如果我的观点不正确,请指正。 cz我在学习。先谢谢小伙伴们
in_array() 它是第二个参数请求。 array 并且你正在给 object 这就是为什么这个错误
要解决此问题,您需要使用 laravel
中的 toArray() 函数
$x = Video::where('kursus_id', $data)->pluck('slug')->toArray();
那么你可以使用in_array($value, $x)
我知道这与其他问题类似,但是。 如果我们从 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 并给它 pluck 时,当我使用像 ["1","2","3"] 这样的常规数组时,这将变成相同的输出。
如果我的观点不正确,请指正。 cz我在学习。先谢谢小伙伴们
in_array() 它是第二个参数请求。 array 并且你正在给 object 这就是为什么这个错误
要解决此问题,您需要使用 laravel
中的 toArray() 函数$x = Video::where('kursus_id', $data)->pluck('slug')->toArray();
那么你可以使用in_array($value, $x)