Giới thiệu

Chào mừng bạn đến với phần 3 của loạt bài hướng dẫn về Collections trong Laravel 11 trên CodeTuthub.com. Trong phần này, chúng ta sẽ tiếp tục khám phá thêm nhiều phương thức mạnh mẽ khác mà Laravel Collections cung cấp, bao gồm các phương thức như min(), only(), pluck(), random(), reduce(), và nhiều phương thức khác để giúp bạn dễ dàng thao tác với dữ liệu một cách hiệu quả hơn.

Xem lại phần các phần trước tại đây: Phần 1, Phần 2.

1. Phương thức min()

Phương thức min() trả về giá trị nhỏ nhất trong collection.

Cách sử dụng:

php
$collection = collect([10, 20, 5, 40]);
$min = $collection->min();
echo $min; // 5

2. Phương thức mode()

Phương thức mode() trả về giá trị có tần suất xuất hiện nhiều nhất trong collection.

Cách sử dụng:

php
$collection = collect([1, 2, 2, 3, 4]);
$mode = $collection->mode();
print_r($mode->all());

Kết quả:

plain
[2]

3. Phương thức nth()

Phương thức nth() trả về mỗi mục thứ N trong collection, bắt đầu từ phần tử đầu tiên.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5, 6, 7]);
$nth = $collection->nth(2);
print_r($nth->all());

Kết quả:

plain
[1, 3, 5, 7]

4. Phương thức only()

Phương thức only() trả về các phần tử có khóa được chỉ định.

Cách sử dụng:

php
$collection = collect(['name' => 'John', 'age' => 30, 'email' => 'john@example.com']);
$only = $collection->only(['name', 'email']);
print_r($only->all());

5. Phương thức pad()

Phương thức pad() thêm phần tử mới để đạt được số lượng phần tử mong muốn trong collection.

Cách sử dụng:

php
$collection = collect([1, 2, 3]);
$padded = $collection->pad(5, 0);
print_r($padded->all());

Kết quả:

plain
[1, 2, 3, 0, 0]

6. Phương thức partition()

Phương thức partition() chia collection thành hai, một với các mục thỏa mãn điều kiện và một với các mục không thỏa mãn điều kiện.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5, 6]);
[$even, $odd] = $collection->partition(function ($value) {
    return $value % 2 === 0;
});

Kết quả:

  • Even: [2, 4, 6]
  • Odd: [1, 3, 5]

7. Phương thức pipe()

Phương thức pipe() chuyển collection qua một hàm callback và trả về kết quả của hàm đó.

Cách sử dụng:

php
$collection = collect([1, 2, 3]);
$piped = $collection->pipe(function ($collection) {
    return $collection->sum();
});
echo $piped; // 6

8. Phương thức pluck()

Phương thức pluck() trả về tất cả các giá trị của một khóa cụ thể trong collection.

Cách sử dụng:

php
$collection = collect([
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
]);

$names = $collection->pluck('name');
print_r($names->all());

Kết quả:

php
['John', 'Jane']

9. Phương thức random()

Phương thức random() trả về một hoặc nhiều mục ngẫu nhiên từ collection.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$random = $collection->random(2);
print_r($random->all());

10. Phương thức reduce()

Phương thức reduce() lặp qua collection và giảm nó thành một giá trị duy nhất.

Cách sử dụng:

php
$collection = collect([1, 2, 3]);
$sum = $collection->reduce(function ($carry, $item) {
    return $carry + $item;
});
echo $sum; // 6

11. Phương thức reject()

Phương thức reject() loại bỏ các mục trong collection không thỏa mãn điều kiện được đưa ra.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4]);
$rejected = $collection->reject(function ($value) {
    return $value > 2;
});
print_r($rejected->all());

12. Phương thức replace()replaceRecursive()

  • replace() thay thế các mục trong collection bằng các giá trị tương ứng.
  • replaceRecursive() thực hiện việc thay thế một cách đệ quy trên các mảng đa chiều.

Cách sử dụng:

php
$collection = collect(['name' => 'John', 'age' => 30]);
$replaced = $collection->replace(['age' => 31]);
print_r($replaced->all());

13. Phương thức reverse()

Phương thức reverse() đảo ngược thứ tự của các mục trong collection.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4]);
$reversed = $collection->reverse();
print_r($reversed->all());

14. Phương thức search()

Phương thức search() tìm kiếm một mục trong collection và trả về khóa tương ứng.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4]);
$key = $collection->search(3);
echo $key; // 2

15. Phương thức shuffle()

Phương thức shuffle() xáo trộn thứ tự của các mục trong collection một cách ngẫu nhiên.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$shuffled = $collection->shuffle();
print_r($shuffled->all());

16. Phương thức skip()

Phương thức skip() bỏ qua một số lượng mục nhất định và trả về các mục còn lại trong collection.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$skipped = $collection->skip(2);
print_r($skipped->all());

17. Phương thức slice()

Phương thức slice() cắt ra một phần của collection, bắt đầu từ một vị trí cụ thể.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$sliced = $collection->slice(2);
print_r($sliced->all());

18. Phương thức sole()

Phương thức sole() trả về mục duy nhất trong collection thỏa mãn điều kiện, nếu không tìm thấy hoặc có nhiều hơn một mục sẽ ném lỗi.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$sole = $collection->sole(function ($value) {
    return $value === 3;
});

19. Phương thức some()

Phương thức some() kiểm tra xem có ít nhất một mục trong collection thỏa mãn điều kiện hay không.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5]);
$some = $collection->some(fn($value) => $value > 4); // true

20. Phương thức sort(), sortBy(), sortByDesc(), sortKeys(), sortKeysDesc()

  • sort(): Sắp xếp các mục theo thứ tự tự nhiên.
  • sortBy(): Sắp xếp các mục theo một khóa cụ thể.
  • sortByDesc(): Sắp xếp giảm dần.
  • sortKeys(): Sắp xếp các khóa.
  • sortKeysDesc(): Sắp xếp các khóa theo thứ tự giảm dần.

Cách sử dụng:

php
$collection = collect([5, 3, 1, 4, 2]);
$sorted = $collection->sort();
print_r($sorted->values()->all());

21. Phương thức split()

Phương thức split() chia collection thành một số lượng nhỏ hơn các collection con.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4, 5, 6]);
$split = $collection->split(3);
print_r($split->all());

22. Phương thức sum()

Phương thức sum() trả về tổng của các giá trị trong collection.

Cách sử dụng:

php
$collection = collect([1, 2, 3, 4]);
$sum = $collection->sum();
echo $sum; // 10

Kết luận

Trong phần 3 này, chúng ta đã tìm hiểu thêm nhiều phương thức mạnh mẽ của Laravel Collections, từ việc sắp xếp dữ liệu với sort(), lấy dữ liệu ngẫu nhiên với random(), cho đến việc thao tác trên các mảng đa chiều với replaceRecursive(). Những phương thức này giúp bạn dễ dàng thao tác với dữ liệu phức tạp trong ứng dụng Laravel.

Tác giả: Đội ngũ CodeTuthub.com