日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php如何使用高阶函数

發布時間:2023/12/19 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php如何使用高阶函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、首先學會數組轉集合的方式

(1)使用collect函數

? ? ? ? $arr = [1, 2, 3, 4, 5];
?? ??? ?$collect = collect($arr);

(2)使用array_map函數

?? ??? ?$arr = [1, 2, 3, 4, 5];

? ? ? ? $collect = array_map(function($item){
? ? ? ? ? ? return $item * $item;
? ? ? ? }, $arr);
2、集合高階函數使用教程

假設 $collection = collect(['susan', 'bob', 'jason', 'mali']);

(1)使用過濾函數filter()

?? ??? ?$result = $collection->filter(function ($value) {
?? ??? ??? ?return $value == 'bob';
?? ??? ?});

?

(2)search 方法可以用給定的值查找集合。如果這個值在集合中,會返回對應的鍵。如果沒有數據項匹配對應的值,會返回 false。

$names->search('mali');

// 返回3

(3)dump(),集合打印

collection->dump();

(4)使用map遍歷

?? ??? ?$result = $collection->map(function ($value) {
?? ??? ??? ?return $value .= '123';
?? ??? ?});
?

(5)使用zip()函數

Zip 方法會將給定數組的值與集合的值合并在一起。相同索引的值會添加在一起,這意味著,數組的第一個值會與集合的第一個值合并。在這里,我會使用我們在上面剛剛創建的集合。這對 Eloquent 集合同樣有效。

?? ??? ?$result = $collection->zip([1, 2, 3]);

(6)whereNotIn按照給定數組中包含的鍵值過濾集合

?? ??? ?$collection = collect([
?? ??? ??? ?['user_id' => 1],
?? ??? ??? ?['user_id' => 2],
?? ??? ??? ?['user_id' => 3],
?? ??? ?]);
?? ??? ?$result = $collection->whereNotIn('user_id', [1, 2]);

(7)whereNotIn按照給定數組中未包含的鍵值過濾集合

?? ??? ?$collection = collect([
?? ??? ??? ?['user_id' => 1],
?? ??? ??? ?['user_id' => 2],
?? ??? ??? ?['user_id' => 3],
?? ??? ?]);
?? ??? ?$result = $collection->whereNotIn('user_id', [1, 2]);
?

(8)max 方法返回給定鍵的最大值

? ? ? ?$collection = collect([
?? ??? ??? ?['user_id' => 1],
?? ??? ??? ?['user_id' => 2],
?? ??? ??? ?['user_id' => 3],
?? ??? ?]);
?? ??? ?$result = $collection->max('user_id');

? ? ? ? //結果為3

(9)pluck 方法返回指定鍵的所有值。 它對于提取一列的值很有用。

? ? ? ?$collection = collect([
?? ??? ??? ?['user_id' => 1],
?? ??? ??? ?['user_id' => 2],
?? ??? ??? ?['user_id' => 3],
?? ??? ?]);
?? ??? ?$result = $collection->pluck('user_id');

(10)each 是一種迭代整個集合的簡單方法。 它接受一個帶有兩個參數的回調:它正在迭代的項和鍵。 Key 是基于 0 的索引。

$posts->each(function ($item, $key) {
? ? // Do something
});

(11)tap() 方法允許你隨時加入集合。 它接受回調并傳遞并將集合傳遞給它。 您可以對項目執行任何操作,而無需更改集合本身。 因此,您可以在任何時候使用tap來加入集合,而不會改變集合。

$collection->whereNotIn('user_id', 3)
? ? ->tap(function ($collection) {
? ? ? ? $collection = $collection->where('user_id', 1);
? ? ? ? info($collection->values());
? ? })
? ? ->all();

(12)pipe 方法非常類似于 tap 方法,因為它們都在集合管道中使用。 pipe 方法將集合傳遞給回調并返回結果。

$collection->pipe(function($collection) {
? ? return $collection->min('user_id');
});

(13)contains 方法只檢查集合是否包含給定值。 只傳遞一個參數時才會出現這種情況。


$contains->contains('USA');
// true

$contains->contains('UK');
// false

(14)forget 只是從集合中刪除該項。 您只需傳遞一個鍵,它就會從集合中刪除該項目。

$forget = collect(['country' => 'usa', 'state' => 'ny']);

$forget->forget('country')->all();

(15)avg()

$avg = collect([
? ? ['shoes' => 10],
? ? ['shoes' => 35],
? ? ['shoes' => 7],
? ? ['shoes' => 68],
])->avg('shoes');

?

總結

以上是生活随笔為你收集整理的php如何使用高阶函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。