How to get index of element in Laravel collection
You can use the collection search()
method: https://laravel.com/docs/5.7/collections#method-search
$users = User::has('posts')->withCount('posts')->orderBy('posts_count')->take(50)->get();$userIndex = $users->search(function($user) { return $user->id === Auth::id();});
Just be careful, because the index might be 0:
// DON'T do thisif($userIndex) { // this will get skipped if the user is the first one in the collection}// Do this insteadif($userIndex !== false) { // this will work}
$users = User::has('posts')->withCount('posts')->orderBy('posts_count')->take(50)->get();// this return a collection. So can do an if like this: $userIndex->count() > 0$userIndex = $users->filter(function($user) { return $user->id === Auth::id()});