你可能須要瞭解下Laravel集合

clipboard.png

前言

集合經過 Illuminate\Support\Collection 進行實例,Laravel的內核大部分的參數傳遞都用到了集合,但這並不表明集合就是好的。Laravel做爲快捷並優雅的開發框架,是有他必定的道理所在的,並不是因他的路由、DB、監聽器等等。當你須要處理一組數組時,你可能就須要它幫助你快捷的解決實際問題。laravel

建立集合

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

顯而易見,這是一部很是簡單的操做,請打住你想說「這種操做很複雜」的話,它更相似與早起PHP5.x的版本的聲明方式。sql

$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 經過給定的鍵值過濾集合

致謝

感謝你看到這裏,但願本篇可以幫助到你。謝謝,還不抓緊去練習下集合?spa

相關文章
相關標籤/搜索