1. 程式人生 > >你可能需要了解下Laravel集合

你可能需要了解下Laravel集合

前言

集合通過 Illuminate\Support\Collection 進行例項,Laravel的核心大部分的引數傳遞都用到了集合,但這並不代表集合就是好的。Laravel作為快捷並優雅的開發框架,是有他一定的道理所在的,並非因他的路由、DB、監聽器等等。當你需要處理一組陣列時,你可能就需要它幫助你快捷的解決實際問題。

建立集合


$collection = collect([1, 2, 3]);

顯而易見,這是一部非常簡單的操作,請打住你想說“這種操作很複雜”的話,它更類似與早起PHP5.x的版本的宣告方式。


$collection = array(1,2,3);

laravel對於collection也沒有做任何複雜的事情,會在下一章 《Laravel原始碼解析之集合》,謝謝

打回原型

如果你想將集合轉換為資料,其使用方法也非常的簡單


collect([1, 2, 3])->all();
------>
[1, 2, 3]

在不過與考慮效能的情況下,可以使用Laravel集合,畢竟它將幫你完成陣列操作的百分之九十的工作。
例如我們需要通過一個水平線切分陣列,將其分為2個及以上的陣列個數。使用集合可以醬紫做~


$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$chunks = $collection->chunk(4);

$chunks->toArray();

// [[1, 2, 3, 4], [5, 6, 7]]

並且有些還根據sql語句的查詢方式來設計的方法,下面就讓來看下具體都有哪些吧。

方法列表

這裡列出一些常用的集合操作方法,具體及全部請操作官方。

方法 註釋
all 將集合打回原型
average & avg 計算平均值
chunk 將集合拆成多個指定大小的小集合
collapse 將多個數組的集合合併成一個數組的集合
combine 可以將一個集合的值作為「鍵」,再將另一個數組或者集合的值作為「值」合併成一個集合
concat 將給定的陣列或集合值附加到集合的末尾
contains 判斷集合是否包含給定的專案
count 返回該集合內的專案總數
dd 列印集合的專案並結束指令碼執行
diff 將集合與其它集合或純 PHP 陣列進行值的比較,然後返回原集合中存在而給定集合中不存在的值
each 迭代集合中的內容並將其傳遞到回撥函式中
filter 使用給定的回撥函式過濾集合的內容,只留下那些通過給定真實測試的內容
first 返回集合中通過給定真實測試的第一個元素
groupBy 根據給定的鍵對集合內的專案進行分組
push 把給定值新增到集合的末尾
put 在集合內設定給定的鍵值對
sortBy 通過給定的鍵對集合進行排序。排序後的集合保留了原陣列鍵
where 通過給定的鍵值過濾集合

致謝

感謝你看到這裡,希望本篇能夠幫助到你。謝謝,還不抓緊去練習下集合?

原文地址:https://segmentfault.com/a/1190000016758044