你可能需要了解下Laravel集合

clipboard.png

前言

集合通過 Illuminate\Database\Eloquent\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 通過給定的鍵值過濾集合

致謝

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章