Rumah >rangka kerja php >Laravel >Laravel中collection类的使用方法总结(代码)

Laravel中collection类的使用方法总结(代码)

不言
不言asal
2018-08-07 09:37:159682semak imbas
Laravel 的 Collection 类其实有很多非常实用的方法,对于我们在优化循环的时候非常的有用,我们的目标就是:不再写 foreach 循环!这篇文章给大家分享的内容是关于Laravel中collection类的使用方法总结(代码),内容很详细,有一定的参考价值,希望可以帮助到有需要的朋友。

一、sum 求价格总和

    我们会学习到 flatMap map sum 等非常实用的方法

2362154956-5b66567464a0b_articlex.png

3940540905-5b66569b37d5d_articlex.png

2726206656-5b6656c7ab14a_articlex.png

collect($arr)->pluck('order_products.*.price')->flatten(1)->sum();

二、 格式化登机口

    希望加深 map 的理解和 map 的应用场景
2109972253-5b6655719a3a2_articlex.png

2409068669-5b6654d016bd7_articlex.png

三、计算 Github 活跃度

    通过 API 后获取到数据,将数据转化为得分的一种机制,首先会尝试 foreach 的方式,然后再用 Laravel 的 Collection 来优化和重构

https://api.github.com/users/...

2787272058-5b665b73b34a5_articlex.png

常规解法:

2660674473-5b665b6285406_articlex.png

collection重构:

4279726300-5b665adf9c364_articlex.png

四、转化评论格式

    Laravel Collection 中的 implode 方法其实在某些场景之下非常的有用,结合 map ,我们就可以对每个元素进行自由度很高的格式自定义,本节视频是普通格式转 Markdown 格式

1300505747-5b66692692b6e_articlex.png

五、计算每月营业额

    在之前的示例当中,我们都是对一个数组进行优化和重构。这节学习使用 zip 方法来解决两个数组的情况。

4274128846-5b666dc11fabd_articlex.png

2037934552-5b666def83f14_articlex.png

1204922620-5b666e0b06c76_articlex.png

4293260928-5b666da9a7264_articlex.png

六、reduce 创建 lookup 数组

    在 Laravel Collection 当中,还有一个非常常用的方法:reduce,这对于我们在创建 lookup 数组的时候非常的有用,这样就可以使用 Collection 重构一个复杂的数组,将它变成简单 key value 这样的 lookup 数组。

3180002518-5b667478cd2df_articlex.png

或者:

collect($employees)->pluck('email','name')

七、计算订单汇总

    在处理订单问题的时候,会遇到各种各样的汇总问题,比如每天的销售额汇总,每天的供应商汇总等,这个视频中会学习 sum 方法的黑科技和一些 groupBy 的常见应用场景

759334643-5b667b2161b55_articlex.png

2781361481-5b667afd406b6_articlex.png

63546242-5b667a85b5b2c_articlex.png

相关文章推荐:

Laravel框架中的Possport  Api的认证过程详解(图文)

laravel框架模型model的创建与使用方法

Atas ialah kandungan terperinci Laravel中collection类的使用方法总结(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn