目錄
在數組中求和值
從數組元素構建自定義字符串
分組或轉換數據
使用array_reduce的一些提示
首頁 後端開發 php教程 如何在php數組上使用array_reduce

如何在php數組上使用array_reduce

Jul 15, 2025 am 02:49 AM

您在PHP中使用Array_Reduce處理數組並將其簡化為單個值。 1。這是總和值的理想選擇,例如總數數組。 2。它可以構建自定義字符串,例如將數組元素與逗號和“和”一起連接。 3。它有助於分組或轉換數據,例如,通過特定鍵重組一系列關聯數組。要有效地使用它,請從一個清晰的初始值開始,保持回調邏輯簡單,並在需要跨迭代保持狀態時應用它。

如何在php數組上使用array_reduce

當您要處理一個數組並將其“簡化”到單個值時,您在PHP中使用array_reduce 。這可能是一個總和,一個串聯的字符串,一個過濾的數組 - 實際上您需要的任何東西,只要它產生一個值。

如何在php數組上使用array_reduce

以下是基本層面的工作方式:
您將其傳遞給數組,回調函數,並選擇一個初始值。該回調為數組中的每個元素運行,隨著每次更新的“攜帶”值。

如何在php數組上使用array_reduce

讓我們將其分解為現實世界中的用途以及如何應用它們。


在數組中求和值

這可能是最直接的示例。如果您有一系列數字並且想要獲得總數,則array_reduce可以乾淨地做到這一點。

如何在php數組上使用array_reduce
 $數字= [10,20,30,40];
$ total = array_reduce($數字,功能($ ancy,$ item){
    返回$ crand $ $項目;
},0);
  • $carry以0(我們提供的初始值)開始。
  • 每次,當前項目都會添加到$carry中。
  • 最後, $total為100。

如果您跳過初始值,則它將從null開始,如果您期望一個數字,這可能不是您想要的。


從數組元素構建自定義字符串

另一個常見的用例是將數組變成格式的字符串。例如,與逗號和“和”名稱加入最後一個。

 $ names = ['Alice','Bob','Charlie'];
$ result = array_reduce($ name,函數($ ancy,$ name){
    if($ crand === null){
        返回$ name;
    }
    返回“ $ crancy,$ name”;
});

這給了您"Alice, Bob, Charlie"

從那裡開始,如果您想使其更自然,例如"Alice, Bob and Charlie" ,則可以調整回調內的邏輯 - 也許會檢查索引或計數剩餘的項目。


分組或轉換數據

它不僅用於簡單類型,例如數字或字符串。您也可以使用array_reduce重組或過濾器數組。

假設您有一系列的關聯陣列:

 $ users = [
    ['id'=> 1,'roun'=>'admin'],
    ['id'=> 2,'roun'=>'用戶'],
    ['id'=> 3,'row'=>'admin'],
];

您想通過角色對它們進行分組:

 $ grouped = array_reduce($用戶,函數($ crand,$ user)
    $ cole = $ user ['real'];
    如果(!isset($ crand [$ cole])){
        $ crancy [$ cole] = [];
    }
    $ crancy [$ cole] [] = $ user;
    返回$ crancy;
},[]);

現在您有:

 [
    'admin'=> [ / *用戶1和3 * /],
    '用戶'=> [ / *用戶2 * /]
這是給出的

當處理API響應或數據庫結果時,這種分組非常靈活且有用。


使用array_reduce的一些提示

  • 從可實現的初始值開始- 它使您的邏輯更簡單,更容易出錯。
  • 不要過度複雜回調- 將其集中在一個任務上。
  • 當您需要跟踪狀態時,請使用它- 例如總計,累加器或有條件的建築物。
  • 考慮可讀性- 有時foreach循環更清晰,尤其是對於復雜的邏輯。

它功能強大,但是像任何工具一樣,它適合工作時最好使用。


是的, array_reduce並不是最華麗的PHP功能,但是一旦您感到滿意,它就會以乾淨,功能的方式打開很多可能的處理陣列。

以上是如何在php數組上使用array_reduce的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

我如何了解最新的PHP開發和最佳實踐? 我如何了解最新的PHP開發和最佳實踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什麼是PHP,為什麼它用於Web開發? 什麼是PHP,為什麼它用於Web開發? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設置PHP時區? 如何設置PHP時區? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

我如何驗證PHP中的用戶輸入以確保其符合某些標準? 我如何驗證PHP中的用戶輸入以確保其符合某些標準? Jun 22, 2025 am 01:00 AM

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

編寫清潔和可維護的PHP代碼的最佳實踐是什麼? 編寫清潔和可維護的PHP代碼的最佳實踐是什麼? Jun 24, 2025 am 12:53 AM

寫乾淨、易維護的PHP代碼關鍵在於清晰命名、遵循標準、合理結構、善用註釋和可測試性。 1.使用明確的變量、函數和類名,如$userData和calculateTotalPrice();2.遵循PSR-12標準統一代碼風格;3.按職責拆分代碼結構,使用MVC或Laravel式目錄組織;4.避免麵條式代碼,將邏輯拆分為單一職責的小函數;5.在關鍵處添加註釋並撰寫接口文檔,明確參數、返回值和異常;6.提高可測試性,採用依賴注入、減少全局狀態和靜態方法。這些做法提升代碼質量、協作效率和後期維護便利性。

什麼是php(serialize(),Unserialize())中的數據序列化? 什麼是php(serialize(),Unserialize())中的數據序列化? Jun 22, 2025 am 01:03 AM

thephpfunctionserize()andunSerialize()redustoconvertComplexdatStructDestoresToroStoroStoroSandaBackagagain.1.Serialize()

如何將PHP代碼嵌入HTML文件中? 如何將PHP代碼嵌入HTML文件中? Jun 22, 2025 am 01:00 AM

可以將PHP代碼嵌入HTML文件中,但需確保文件以.php為擴展名,以便服務器能正確解析。使用標準的標籤包裹PHP代碼,可在HTML中任意位置插入動態內容。此外,可在同一文件中多次切換PHP與HTML,實現條件渲染等動態功能。務必注意服務器配置及語法正確性,避免因短標籤、引號錯誤或遺漏結束標籤導致問題。

如何使用PHP執行SQL查詢? 如何使用PHP執行SQL查詢? Jun 24, 2025 am 12:54 AM

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas

See all articles