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

У меня есть объекты многомерного массива $ all2 [$ i] [$ j], которые не определены, но получены через мой запрос sql laravel:

for($i=0; $i<(count($all));$i++){
            $uID = HashtagFollow::select('user_id')->where('hashtag_id', $all[$i]->hashtag_id)->where('user_id', '!=', $loggedin->id)->get();

    for($j=0;$j<count($uID);$j++){
$all2[$i][$j] = HashtagFollow::select('hashtag_id')->where('user_id', $uID[$j]->user_id)->whereNotIn('hashtag_id', $all)->orderBy('hashtag_id')->get();
}
}

, который дает следующий вывод:

0: [[{hashtag_id: 5}], [{hashtag_id: 5}, {hashtag_id: 13}], [{hashtag_id: 2}, {hashtag_id: 13}]]
    0: [{hashtag_id: 5}]
    1: [{hashtag_id: 5}, {hashtag_id: 13}]
    2: [{hashtag_id: 2}, {hashtag_id: 13}]

1: [[{hashtag_id: 5}, {hashtag_id: 13}], [{hashtag_id: 5}], [{hashtag_id: 5}],…]
    0: [{hashtag_id: 5}, {hashtag_id: 13}]
    1: [{hashtag_id: 5}]
    2: [{hashtag_id: 5}]
    3: [{hashtag_id: 12}, {hashtag_id: 13}]

2: [[{hashtag_id: 5}, {hashtag_id: 13}], [{hashtag_id: 5}], [{hashtag_id: 12}, {hashtag_id: 13}]]
    0: [{hashtag_id: 5}, {hashtag_id: 13}]
    1: [{hashtag_id: 5}]
    2: [{hashtag_id: 12}, {hashtag_id: 13}]

3: [[{hashtag_id: 5}, {hashtag_id: 13}], [{hashtag_id: 2}, {hashtag_id: 12}, {hashtag_id: 13}],…]
    0: [{hashtag_id: 5}, {hashtag_id: 13}]
    1: [{hashtag_id: 2}, {hashtag_id: 12}, {hashtag_id: 13}]
    2: [{hashtag_id: 5}]
    3: [{hashtag_id: 5}, {hashtag_id: 13}]
    4: [{hashtag_id: 2}, {hashtag_id: 13}]
    5: [{hashtag_id: 12}, {hashtag_id: 13}]

4: [[{hashtag_id: 5}, {hashtag_id: 13}], [{hashtag_id: 5}], [{hashtag_id: 5}],…]
    0: [{hashtag_id: 5}, {hashtag_id: 13}]
    1: [{hashtag_id: 5}]
    2: [{hashtag_id: 5}]
    3: [{hashtag_id: 5}, {hashtag_id: 13}]
    4: [{hashtag_id: 12}, {hashtag_id: 13}]

5: [[{hashtag_id: 5}], [{hashtag_id: 2}, {hashtag_id: 12}, {hashtag_id: 13}],…]
    0: [{hashtag_id: 5}]
    1: [{hashtag_id: 2}, {hashtag_id: 12}, {hashtag_id: 13}]
    2: [{hashtag_id: 5}, {hashtag_id: 12}, {hashtag_id: 13}]
    3: [{hashtag_id: 5}]
    4: [{hashtag_id: 2}, {hashtag_id: 13}]
    5: [{hashtag_id: 12}, {hashtag_id: 13}]

Сейчас я пытаюсь зациклить этот массив объектов и посчитать, сколько в нем каждого хэштега.

ожидаемый результат: hashtag_id: 2 count: 2 hashtag_id: 5: 5 hashtag_id: 12: 3 hashtag_id: 13: 6

1 Ответ

0 голосов
/ 09 января 2019

Возможно, вы захотите сделать запрос напрямую для этих подсчетов.

например.

SELECT hashtag_id, user_id, COUNT(*) AS count FROM HashtagFollow GROUP BY hashtag_id, user_id;

...