sort collection (groupBy)

Viewed 43

I have a collection and I want to sort by group of languages,

^ Illuminate\Support\Collection {#3271 ▼
  #items: array:90 [▼
    0 => {#2181 ▼
      +"languages": "{"en": "Basic", "ar": "Basic", "eo": "Basic", "fr": "Basic", "ga": "Basic"}"
      +"roles": []
    }
    1 => {#2158 ▼
      +"languages": "{"cy": "Basic", "ti": "Conversational", "tr": "Fluent", "sv": "Basic", "st": "Native\/Bilingual", "sn": "Fluent"}"
      +"roles": []
    }
    2 => {#2179 ▶}

I want to get back the number of EN language and so on,

This was my attempt

User::whereIn('id', $services_id)
            ->select('user_info->languages as languages', DB::raw('count(id) as language_count'))
            ->groupBy('user_info->languages')
            ->get();

But I don't want this result, I want to sort inside a language field

  #items: array:2 [▼
    0 => {#2179 ▼
      +"languages": "{"cy": "Basic", "ti": "Conversational", "tr": "Fluent", "sv": "Basic", "st": "Native\/Bilingual", "sn": "Fluent"}"
      +"language_count": 24
      +"roles": []
    }
    1 => {#2184 ▼
      +"languages": "{"en": "Basic", "ar": "Basic", "eo": "Basic", "fr": "Basic", "ga": "Basic"}"
      +"language_count": 66
      +"roles": []
    }
  ]

Do you have a suggestion Thanks

0 Answers
Related