【PHP】.Hyperf 框架-collection 集合數據(內置函數歸納-實用版)

📌 Article::query()->where('article_id', 6)->select()->first()
  1. ?? 進行數據結果的循環,遍歷
1.each()
方法遍歷集合中的項目并將每個項目傳遞給閉包,進行處理數據
Article::query()->get()->each(function ($item) {// 可以直接執行sql 數據$item->content = str_replace('<img', '<img style="max-width:100%"', $item->content);$item->save();// 不可以直接進行數據的格式化});2.map()
該 map 方法遍歷集合并將每一個值傳入給定的回調函數。該回調函數可以任意修改集合項并返回,從而生成被修改過集合項的新集合(要有接收變量。它不會更改原數據)Article::query()->get()->map(function ($item, $key) {$item->created_at = strtotime($item->created_at);
});

💡 但其實我覺得都不好用。還不如直接toArray(),再用foreach。有的時候情況比較復雜
需要多個條件,進行數據分析。比如一個班的學生。要求獲取性別分類。年齡分類。我覺得一個循環就夠了。沒有必要多次調用這些
遍歷方法進行遍歷獲取。當然 如果說 閉包中使用引用。那就當我沒說


$groupBySex = []
$groupByAge = []Article::query()->get()->map(function ($item, $key) use(&$groupBySex, &$groupByAge) {$item->created_at = strtotime($item->created_at);if ( $item->sex === '男' ) {$groupBySex['boy'] = $item}else {$groupByAge['sex'] = $item}
});

2.?? 對數據進行分組(還行挺實用的)

1.groupby
Article::query()->get()->groupBy('article_id')
// 將id提取出來作為Key
['account-x10' => [['account_id' => 'account-x10', 'product' => 'Chair'],['account_id' => 'account-x10', 'product' => 'Bookcase'],],'account-x11' => [['account_id' => 'account-x11', 'product' => 'Desk'],],]
2. keyby
Article::query()->get()->keyby('article_id')
// 將article_id 提取出來作為keykeyBy 和 groupBy 主要的區別在于,如果說遇到相同重復的key 的時候。 keyBy會用最新的。 groupBy 會保留,在同一個鍵值數組內作為一維數組
$collection = collect([['product' => 'Desk', 'price' => 200],['product' => 'Chair', 'price' => 100],['product' => 'Desk', 'price' => 150]
]);$grouped = $collection->groupBy('product');
$keyed = $collection->keyBy('product');/*
['Desk' => [['product' => 'Desk', 'price' => 200],['product' => 'Desk', 'price' => 150]],'Chair' => [['product' => 'Chair', 'price' => 100]]
]
*//*
['Desk' => ['product' => 'Desk', 'price' => 150],'Chair' => ['product' => 'Chair', 'price' => 100]
]
*/

3.?? 將獲得的數據二維變一維 (也挺實用的)

1. flatten
將數據從二維變成一維。
$collection = collect(['name' => 'taylor','languages' => ['php', 'javascript']
]);$flattened = $collection->flatten();$flattened->all();// ['taylor', 'php', 'javascript'];場景 比如獲取多條記錄的id值后。直接將這些id,直接展開
Article::query()->select(['id'])->get()->flatten();// 就能得到[1,2,3,4,5,6]

4.?? 獲取集合內的某一列的數據

1. pluck
該 pluck 可以獲取集合中指定鍵對應的所有值:
$collection = collect([['product_id' => 'prod-100', 'name' => 'Desk'],['product_id' => 'prod-200', 'name' => 'Chair'],
]);$plucked = $collection->pluck('name');$plucked->all();// ['Desk', 'Chair']

5.?? 直接排序(有的時候有用)但很多情況數據庫數據 就直接用 order() 排序。直接排序了

1. sortBy
Article::query()->sortBy('views')
Article::query()->sortBy('point')

6.?? 創建collection(初始化)

$collection = Collection::wrap('John Doe');

💡 其他的使用不怎么竟然用的到。如果很復雜的。可能更喜歡使用toArray() 轉化成為數組使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87375.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87375.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

巨獸的陰影:大型語言模型的挑戰與倫理深淵

當GPT-4這樣的龐然大物能夠流暢對話、撰寫詩歌、編寫代碼、解析圖像&#xff0c;甚至在某些測試中媲美人類專家時&#xff0c;大型語言模型&#xff08;LLM&#xff09;仿佛成為了無所不能的“智能神諭”。然而&#xff0c;在這令人目眩的成就之下&#xff0c;潛藏著復雜而嚴峻…

vue根據鏈接生成二維碼 qrcode

vue根據鏈接生成二維碼 qrcode js 需求&#xff1a;后端返回一個完整鏈接&#xff0c;前端根據鏈接生成一個二維碼 1、安裝qrcode插件 npm install qrcode2、引入qrcode,并且使用完整代碼 <template> <div><img :src"qrcodeData" class"qrcode…

C# 事件(源代碼組件概覽)

源代碼組件概覽 需要在事件中使用的代碼有5部分&#xff0c;如圖15-4所示&#xff0c;后文會依次進行介紹。這些組件如下 所示 委托類型聲明事件和事件處理程序必須有共同的簽名和返回類型&#xff0c;它們通過委托類型 進行描述。事件處理程序聲明訂閱者類中會在事件觸發時執…

音視頻會議服務搭建(設計方案-數據庫sql)-02

前言 銜接上篇文章&#xff0c;這篇是相關的表結構sql語句記錄 EchoMeet 會議系統數據庫表結構設計 &#x1f4cb; 設計概述 本文檔定義了EchoMeet音視頻會議系統的完整數據庫表結構&#xff0c;采用微服務架構設計&#xff0c;支持高并發、可擴展的會議場景。 &#x1f3af…

MCPA2APPT 智能化演示文稿系統:A2A、MCP、ADK 三大架構全流程自動化

&#x1f680; 項目名稱 MCPA2APPT / MultiAgentPPT —— 一站式 A2A MCP ADK 多智能體并發 PPT 生成解決方案 MCPA2APPT 是一款開源 AI PPT 創作神器&#xff0c;基于 A2A&#xff08;Ask-to-Answer&#xff09;、MCP&#xff08;Multi-agent Control Protocol&#xff09;和…

pyinstall打包mysql-connector-python后運行報錯的問題!

簡單的測試代碼 # main.py import mysql.connectorDB_HOSTlocalhost DB_PORT3306 DB_NAMElover DB_USERroot DB_PASSWORDxxxx# 連接數據庫 connection mysql.connector.connect(hostDB_HOST,portDB_PORT,databaseDB_NAME,userDB_USER,passwordDB_PASSWORD)if connection.is_c…

應對高并發:淘寶商品評論實時數據 API 高效接入開發實踐

在電商平臺的運營中&#xff0c;商品評論數據是用戶決策、商家優化及平臺運營的重要依據。淘寶作為國內領先的電商平臺&#xff0c;其商品評論數據具有實時性強、數據量大、并發訪問頻繁等特點。本文將圍繞淘寶商品評論實時數據 API 的高效接入展開&#xff0c;探討在高并發場景…

踩坑日記:虛擬機橋接模式無法連接網卡

對于一名網安學生&#xff0c;我們滲透測試一般是需要虛擬機使用橋接模式。 但是vm直接設置成橋接模式并不能上網。還要進行如下配置 改一下這個橋接的地方。改成我們主機的網卡。 如何查看主機網卡呢&#xff1f; 設置搜索網絡

Android 系統默認的Launcher3,Android 系統的導航欄(通常是屏幕底部)顯示的 4 個快捷應用圖標,如何替換這4個應用圖標為客戶想要的。

Android 系統默認的Launcher3, Android 系統的導航欄(通常是屏幕底部)顯示的 4 個快捷應用圖標, 如何替換這4個應用圖標為客戶想要的。 開發云 - 一站式云服務平臺 按如下方式可以修改應用圖標。 diff --git a/packages/apps/Launcher3/res/xml/default_workspace_5x6_no_a…

maker-pdf 文檔文字識別,并用python實現

下面我將詳細講解maker-pdf文檔文字識別的技術原理、特點&#xff0c;并提供完整的Python實現代碼及優化方案。內容結合最新文檔和OCR技術實踐&#xff0c;適合開發者直接集成到項目中。 一、maker-pdf 核心技術解析 maker-pdf是基于深度學習的端到端OCR工具鏈&#xff0c;專…

Go基礎(Gin)

go mod init my-gin-app 初始化一個 Go 項目&#xff0c;創建一個go.mod文件go mod tidy 自動整理項目依賴&#xff0c;確保go.mod和go.sum文件與代碼實際使用的依賴一致go mod init&#xff1a;創建項目的 “依賴說明書”。go mod tidy&#xff1a;整理 “說…

21、鴻蒙學習——使用App Linking實現應用間跳轉

簡介 使用App Linking進行跳轉時&#xff0c;系統會根據接口傳入的uri信息&#xff08;HTTPS鏈接&#xff09;將用戶引導至目標應用中的特定內容&#xff0c;無論應用是否已安裝&#xff0c;用戶都可以訪問到鏈接對應的內容&#xff0c;跳轉體驗相比Deep Linking方式更加順暢。…

Cursor無限郵箱續費方法

1.注冊無限郵箱2925 2.“其他郵箱” 3.點擊左下角添加郵箱 4.管理員身份運行Windos PowerShell 5.輸入該指令并運行&#xff0c;修改機器碼 irm https://aizaozao.com/accelerate.php/https://raw.githubusercontent.com/yuaotian/go-cursor-help/refs/heads/master/scripts/…

LeetCode Hot100(圖論)

200. 島嶼數量 題意 給你一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的的二維網格&#xff0c;請你計算網格中島嶼的數量。 島嶼總是被水包圍&#xff0c;并且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連接形成。 此外&#xff0c;你…

Ubuntu Gnome 安裝和卸載 WhiteSur-gtk-theme 類 Mac 主題的正確方法

WhiteSur-gtk-theme 是一個流行的 GNOME 桌面主題&#xff0c;可以讓 Ubuntu 的桌面環境看起來像 macOS。以下是安裝和卸載 WhiteSur-gtk-theme 的詳細步驟&#xff0c;包括解釋每個命令的作用。 一、安裝 WhiteSur-gtk-theme 1. 準備工作 在安裝主題之前&#xff0c;建議確…

如何在DataGear 5.4.1 中快速制作SQL服務端分頁的數據表格看板

DataGear 數據可視化分析平臺&#xff08;http://datagear.tech/&#xff09; 在新發布的5.4.1版本中&#xff0c;內置表格圖表新增了serverSidePaging選項&#xff0c;僅需通過簡單的配置&#xff0c;即可為表格添加服務端分頁、關鍵字查詢、排序功能。 本文以SQL數據集作為數…

股指期貨套保比例怎么算?

在金融市場里&#xff0c;套期保值&#xff08;套保&#xff09;是一種常見的風險管理手段&#xff0c;目的是通過期貨市場對沖現貨市場的風險。而套保比例&#xff08;也叫套保比率&#xff09;的計算&#xff0c;是套保操作的核心。簡單來說&#xff0c;套保比例就是“期貨頭…

邏輯回歸(Logistic Regression)算法詳解

文章目錄 一、邏輯回歸&#xff1a;從線性回歸到二分類的跨越1.1 邏輯回歸簡介1.2 Sigmoid函數&#xff1a;概率映射的數學本質1.3 參數 w w w 和 b b b 對Sigmoid的調控1.4 從線性回歸到分類1.5 決策邊界&#xff1a;從概率到類別&#xff08;結合圖3、圖4&#xff09; 二、…

HTTPS通信流程:SSL/TLS握手全解析

2021&#xff0c;2022&#xff0c;2023年1-8月看了很多技術書籍&#xff0c;現在想來忘了很多&#xff0c;用到的也不多&#xff0c;但是因為提前接觸過&#xff0c;所以很多新東西&#xff0c;接受起來&#xff0c;比預想的要容易些。最近突然想要回憶下HTTPS&#xff0c;居然…

SVG 在 VSCode 中的使用與優勢

SVG 在 VSCode 中的使用與優勢 引言 SVG(可縮放矢量圖形)是一種基于可擴展標記語言的圖形圖像格式,與傳統的位圖格式(如 JPEG 或 PNG)相比,SVG 圖像具有更高的靈活性和可縮放性。隨著前端開發領域的不斷發展,SVG 在網頁設計中的應用越來越廣泛。本文將介紹 SVG 在 Vis…