2017-01-01 82 views
1

我已經用幼蟲做了一個數據庫查詢。如何使用array_count_values函數

QUERY:

if(Request::ajax()) { 
     //On récupère l'ensemble des genres des séries visionnées par l'utilisateur 
     $genre_user = DB::table('genres')->select('genres.name') 
             ->join('seriesgenres', 'genres.id', '=', 'seriesgenres.genre_id') 
             ->join('series', 'seriesgenres.series_id', '=', 'series.id') 
             ->join('usersseries', 'series.id', '=', 'usersseries.serie_id') 
             ->where('usersseries.user_id', '=', Auth::user()->id)->get(); 
     print_r($genre_user);die; 
    } 

此查詢後,我有這樣的陣列

Illuminate\Support\Collection Object 
(
[items:protected] => Array 
    (
     [0] => stdClass Object 
      (
       [name] => Drama 
      ) 

     [1] => stdClass Object 
      (
       [name] => Action 
      ) 

     [2] => stdClass Object 
      (
       [name] => Crime 
      ) 

     [3] => stdClass Object 
      (
       [name] => Drama 
      ) 

     [4] => stdClass Object 
      (
       [name] => Action & Adventure 
      ) 

     [5] => stdClass Object 
      (
       [name] => Drama 
      ) 
    ) 

) 

我想這算陣列中的每個值的數量。 要做到這一點,我知道array_count_values()函數,但它不適用於我的結果數組。問題來自這條線:

$counts = array_count_values($genre_user); 
+0

什麼問題?請提供您遇到的錯誤。 – Aaron

回答

2

你不能這樣做。 array_count_values只爲stringinteger作品功能:

拋出E_WARNING每一個這是不是字符串或整數元素。

對於像這樣的複雜對象,您需要採取不同的方法。由於您的PHP不輸出警告消息,因此不會顯示。如果你願意,你可以做一些轉變。

$finalItems = array(); 
// Loop through the items of the object and push the names into the array. 
// ... Logic ... 
// And finally do: 
array_count_values($finalItems); 
+1

感謝您的解釋,我會嘗試這個 – Mattasse

+0

感謝您的幫助,我已經解決了這個問題,祝您有個愉快的一天! – Mattasse