laravel中集合和陣列的差別是什麼?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Laravel中的數組,原始碼位置IlluminateSupportArr.php;
IlluminateSupportArr.php
Laravel中的集合,原始碼位置IlluminateSupportCollection.php;
IlluminateSupportCollection.php
集合是對數組的再次封裝,以對象的形式呈現;提供了很多方法功能(這些方法內部大多採用了回調函數),比數組形式的操作要靈活多了;
本質上就是用物件導向的形式操作元素和以陣列形式操作元素的區別;如果以物件操作,如vika_倾慕說的,可以鍊式操作;如果按照陣列操作,會產生很多中間臨時變數或語句,程式碼顯得冗長;
vika_倾慕
集合比數組更強大的地方是其使用了各種 map / reduce 的直觀操作,例如,我們移除所有未激活的用戶模型和收集其餘各個用戶的名字:
$users = App\User::where('active', 1)->get(); $names = $users->reject(function ($user) { return $user->active === false; }) ->map(function ($user) { return $user->name; });
如果覺得可以,記得採納
Laravel中的數組,原始碼位置
IlluminateSupportArr.php
;Laravel中的集合,原始碼位置
IlluminateSupportCollection.php
;集合是對數組的再次封裝,以對象的形式呈現;提供了很多方法功能(這些方法內部大多採用了回調函數),比數組形式的操作要靈活多了;
本質上就是用物件導向的形式操作元素和以陣列形式操作元素的區別;如果以物件操作,如
vika_倾慕
說的,可以鍊式操作;如果按照陣列操作,會產生很多中間臨時變數或語句,程式碼顯得冗長;集合比數組更強大的地方是其使用了各種 map / reduce 的直觀操作,例如,我們移除所有未激活的用戶模型和收集其餘各個用戶的名字:
如果覺得可以,記得採納