簡體   English   中英

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=["2"] $z=["1","2","3"] 更改 $x 和 $z 時,這很有效。 並且輸出是 1 & 3 我認為當我使用 db 並給它 pluck 時,當我使用像 ["1","2","3"] 這樣的常規數組時,這將成為相同的輸出。

如果我的觀點有誤,請糾正我。 cz 我在學習中。 在朋友之前感謝

in_array()它是第二個參數要求。 數組,而您正在提供對象,這就是此錯誤的原因

要解決此問題,您需要在 laravel 中使用toArray()函數

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM