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 的直观操作,例如,我们移除所有未激活的用户模型和收集其余各个用户的名字:
如果觉得可以,记得采纳