Laravel collections simplify data processing by providing a variety of methods. 1. Use filter() and reject() to filter data according to conditions, such as $activeUsers = $users->filter(fn($user) => $user->is_active); 2. Use map() and transform() to convert data structures, such as formatting article titles and summary; 3. Numerical aggregation calculations can be easily performed through sum(), avg() and other methods, such as $totalRevenue = $orders->sum('amount'); 4. groupBy() and keyBy() can be used to group or re-index by specified keys, such as classifying products by category. Mastering these methods can significantly improve data operation efficiency and code readability.
Laravel collections are one of the most powerful and commonly used features in Laravel. They provide a fluent, convenient way to work with arrays of data using a wide range of methods. Whether you're filtering query results, transforming data, or performing aggregations, collections make it easier and more readable.

Here are some key areas where collections really shine and how to use them effectively:

Filtering Data with filter()
and reject()
When working with a list of items, you often need to narrow down the results based on certain conditions.
-
filter()
keeps only the items that meet your criteria. -
reject()
does the opposite — removes items that match a condition.
For example, if you have a collection of users and want to find those who are active:

$activeUsers = $users->filter(function ($user) { return $user->is_active; });
You can also chain these methods for more complex logic. It's important to remember that by default, these methods preserve the original keys. If you don't care about keys, consider using values()
afterward to reindex the collection.
Transforming Data with map()
and transform()
Sometimes you need to change the structure or content of each item in the collection.
-
map()
applies a callback to each item and returns a new collection. -
transform()
modifies the original collection (it's destructive).
A common use case is formatting dates or renaming fields:
$formatted = $posts->map(function ($post) { Return [ 'title' => $post->title, 'excerpt' => Str::limit($post->content, 100), ]; });
Keep in mind: map()
returns a new collection, which is usually what you want unless memory usage is a concern.
Aggregating Data with sum()
, avg()
, min()
, and max()
If you're dealing with numeric values — like order totals or product prices — these methods simplify calculations.
Say you have a collection of orders and want the total revenue:
$totalRevenue = $orders->sum('amount');
These methods work well when you already have an array of data and want to avoid looping manually. Just be careful with nested or irregular data structures — sometimes a custom loop is clearer.
Grouping and Indexing with groupBy()
and keyBy()
When displaying data in sections or looking up items quickly, grouping becomes useful.
-
groupBy()
organizes items into sub-arrays based on a key. -
keyBy()
assigns a single key to each item, usually replacing existing keys.
Example: group products by category
$grouped = $products->groupBy('category');
This gives you an easy way to display products under their respective categories in a view.
Working with Laravel collections becomes second nature once you get familiar with the most-used methods. The key is knowing which method fits your current task — whether it's filtering, mapping, summarizing, or organizing data.
Basically that's it.
The above is the detailed content of Working with Laravel Collections and Common Methods?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

InLaravel,policiesorganizeauthorizationlogicformodelactions.1.Policiesareclasseswithmethodslikeview,create,update,anddeletethatreturntrueorfalsebasedonuserpermissions.2.Toregisterapolicy,mapthemodeltoitspolicyinthe$policiesarrayofAuthServiceProvider.

To create new records in the database using Eloquent, there are four main methods: 1. Use the create method to quickly create records by passing in the attribute array, such as User::create(['name'=>'JohnDoe','email'=>'john@example.com']); 2. Use the save method to manually instantiate the model and assign values ??to save one by one, which is suitable for scenarios where conditional assignment or extra logic is required; 3. Use firstOrCreate to find or create records based on search conditions to avoid duplicate data; 4. Use updateOrCreate to find records and update, if not, create them, which is suitable for processing imported data, etc., which may be repetitive.

Artisan is a command line tool of Laravel to improve development efficiency. Its core functions include: 1. Generate code structures, such as controllers, models, etc., and automatically create files through make: controller and other commands; 2. Manage database migration and fill, use migrate to run migration, and db:seed to fill data; 3. Support custom commands, such as make:command creation command class to implement business logic encapsulation; 4. Provide debugging and environment management functions, such as key:generate to generate keys, and serve to start the development server. Proficiency in using Artisan can significantly improve Laravel development efficiency.

ToruntestsinLaraveleffectively,usethephpartisantestcommandwhichsimplifiesPHPUnitusage.1.Setupa.env.testingfileandconfigurephpunit.xmltouseatestdatabaselikeSQLite.2.Generatetestfilesusingphpartisanmake:test,using--unitforunittests.3.Writetestswithmeth

Yes,youcaninstallLaravelonanyoperatingsystembyfollowingthesesteps:1.InstallPHPandrequiredextensionslikembstring,openssl,andxmlusingtoolslikeXAMPPonWindows,HomebrewonmacOS,oraptonLinux;2.InstallComposer,usinganinstalleronWindowsorterminalcommandsonmac

Defining a method (also known as an action) in a controller is to tell the application what to do when someone visits a specific URL. These methods usually process requests, process data, and return responses such as HTML pages or JSON. Understanding the basic structure: Most web frameworks (such as RubyonRails, Laravel, or SpringMVC) use controllers to group related operations. Methods within each controller usually correspond to a route, i.e. the URL path that someone can access. For example, there may be the following methods in PostsController: 1.index() – display post list; 2.show() – display individual posts; 3.create() – handle creating new posts; 4.u

The main role of the controller in Laravel is to process HTTP requests and return responses to keep the code neat and maintainable. By concentrating the relevant request logic into a class, the controller makes the routing file simpler, such as putting user profile display, editing and deletion operations in different methods of UserController. The creation of a controller can be implemented through the Artisan command phpartisanmake:controllerUserController, while the resource controller is generated using the --resource option, covering methods for standard CRUD operations. Then you need to bind the controller in the route, such as Route::get('/user/{id

Laravel allows custom authentication views and logic by overriding the default stub and controller. 1. To customize the authentication view, use the command phpartisanvendor:publish-tag=laravel-auth to copy the default Blade template to the resources/views/auth directory and modify it, such as adding the "Terms of Service" check box. 2. To modify the authentication logic, you need to adjust the methods in RegisterController, LoginController and ResetPasswordController, such as updating the validator() method to verify the added field, or rewriting r
