How to get index of element in Laravel collection How to get index of element in Laravel collection laravel laravel

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()});