2017-01-01 103 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