подсчет повторяющихся объектов в массиве php - PullRequest
0 голосов
/ 11 января 2019

У меня есть массив объектов, извлеченных из SQL-запроса larvel:

$c=[{hashtag_id: 5}, {hashtag_id: 5}, {hashtag_id: 13}, {hashtag_id: 2}, {hashtag_id: 13},…]
0: {hashtag_id: 5}
1: {hashtag_id: 5}
2: {hashtag_id: 13}
3: {hashtag_id: 2}
4: {hashtag_id: 13}
5: {hashtag_id: 5}
6: {hashtag_id: 13}
7: {hashtag_id: 5}
8: {hashtag_id: 12}
9: {hashtag_id: 13}
10: {hashtag_id: 2}
11: {hashtag_id: 12}
12: {hashtag_id: 13}
13: {hashtag_id: 5}
14: {hashtag_id: 12}
15: {hashtag_id: 13}

Я пытаюсь посчитать через массив и взять счетчик для каждого хэштега.

Ожидаемый результат:

hashtag_id: 2 {2};
hashtag_id: 5 {5}; 
hashtag_id: 12 {3}; 
hashtag_id:13 {6};

OR ожидаемый результат:

hashtag_id: 2 count: 2;
hashtag_id: 5 count: 5;
hashtag_id:12 count: 3;
hashtag_id:13 count: 5;

что было бы лучшим способом сделать это?

Мой код:

for($j=0;$j<count($result2);$j++){
                $all2 = HashtagFollow::select('hashtag_id')->where('user_id', $result2[$j]->user_id)->whereNotIn('hashtag_id', $all)->orderBy('hashtag_id')->get();
                array_push($c, $all2);
            }
        $c1 = array_flatten($c);
$d = (array_count_values(array_column($c1, 'hashtag_id')));
return ($d);
...