当前位置: 首页 > 后端技术 > PHP

分享10个好用的Laravel5.8集合辅助方法

时间:2023-03-30 05:59:21 PHP

文章转发自专业的Laravel开发者社区,原文链接:https://learnku.com/laravel/t...在Laravel中,有一个非常好用的类称为集合。相信每个Laravel开发者都或多或少地使用过集合,尤其是在操作Eloquent的时候。在本文中,我将列出10个常用的方法。1.de-duplicates方法可以检索集合中所有的重复值。返回的数组将包含原始数组中每个值的键。duplicates();//[3=>'詹姆斯',5=>'丽莎']2。遍历集合也可以不使用foreach来遍历集合,即使用each方法。与通常的foreach方法一样,each方法也有两个参数,item和key。each(function($item,$key){//做事});3.调试输出集合我们在调试代码的时候,经常需要输出和查看集合的内容。除了使用dump($collection),还可以使用集合的dump方法。使用dump方法的好处是输出看起来更干净、更清晰。dump();/*Collection{#items:array:3[0=>"james"1=>"lisa"2=>"ryan"]}*/如果要输出集合的内容打断点可以使用dd(输出和终止)方法。4.Hashas方法可以用来检查集合中是否存在key。参数可以是字符串或数组。如果传入一个数组作为参数,那么数组中的所有值都必须是集合中的键才能返回true,否则返回false。'HarryPotter','author'=>'J.K.Rowling','price'=>25]);$collection->has('author');//true$collection->has(['title','price']);//true$collection->has(['price','rating']);//错误5。Implodeimplode方法可以连接集合值。此方法的工作原理与PHP中的implode方法非常相似。'礼品卡','price'=>50],['title'=>'椅子','price'=>80],]);$collection->implode('title',',');//Giftcard,Chair如果collection中的值只是字符串或者数字,只需要将connector作为参数传入即可。implode('-');//1-2-foo-3-bar6.PushwithPull可以使用push方法将项目追加到集合的末尾。如果需要添加到集合的开头,可以使用prepend方法。push(4);$collection->all();//[1,2,3,4]pull方法将给定的键从集合中移除,并返回其对应的值。'HarryPotter','author'=>'J.K.Rowling','price'=>25]);$collection->pull('author');//'J.K.罗琳'$collection->all();//['title'=>'HarryPotter','price'=>25]7.Shuffle方法shuffle方法将对集合中的项目进行随机排序。shuffle();$shuffled->all();//[3,1,2](randomexample)8.Max方法您可以使用max方法获取集合中的最大值。如果集合包含数组,可以传递参数来获取某个键的最大值。'Giftcard','price'=>50],['title'=>'Chair','price'=>80]])->max('价格');//80$max=collect([1,2,3])->max();//39.Filter可以使用filter方法对集合进行过滤。此方法接受回调函数作为参数。在回调函数中定义过滤规则,只有符合规则的值才能留在集合中。filter(function($value,$key){return$value%2==0;});$even_numbers->all();//[2,4,6,8,10]10。Sliceslice方法可以用来对集合进行划分,返回参数指定的索引位置及其值之后,返回值数组将包含原数组的键。注意下面的例子中,传递的参数是2。意思是从索引2开始拆分集合,而不是数组中的元素值2。slice(2);$切片->全部();//[3,4,5]