摘要:這里的第三個參數(shù)設(shè)定了個空數(shù)組,所以它不僅作為第一個傳入自定義函數(shù)的值,也會作為的返回值給我們想要的結(jié)果以上代碼最終的返回值為原文
之前在segmentfault里提了個問題
有個數(shù)組,讓紅框里的鍵值連續(xù)0123456789而不是每次都重新0123,0123
想道用array_merge重新整合但是不知道循環(huán)該怎么寫
有位叔給出了一個超級簡單的方法,看了下 array_reduce()函數(shù),頓時開朗
關(guān)于 array_reduce()
mixed array_reduce ( array $input , callback $function [, int $initial ] )
它將$input數(shù)組分別迭代到自定義回調(diào)函數(shù)$function中去,如果設(shè)定了第一個函數(shù)$initial ,則$initial 作為第san個數(shù)組處理
eg 1
這里php4.3的版本輸出的是
Dog-Cat-Horse
而php5以后的版本輸出的是
-Dog-Cat-Horse
原因可能為5.3的版本因為就算沒有傳第三個參數(shù),也默認把空值傳到回調(diào)函數(shù)中
這樣第一次傳到my function里的值為“”和Dog
eg2
$b輸出15,幾次傳值分別為1+2,3+3,6+4,10+5
$c輸出1200,幾次傳值分別為101,102,203,604,240*5
回到最初的問題
我們來看array_reduce()的對第三個參數(shù)的官方解釋:如果指定了可選參數(shù) initial,該參數(shù)將被當成是數(shù)組中的第一個值來處理,或者如果數(shù)組為空的話就作為最終返回值。
這里的第三個參數(shù)設(shè)定了個空數(shù)組array(),所以它不僅作為第一個傳入自定義函數(shù)merge()的值,也會作為array_reduce()的返回值給我們想要的結(jié)果
以上代碼最終的返回值為
array(9) {
[0]=>
int(1)
1=>
int(2)
2=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
[7]=>
int(8)
[8]=>
int(9)
}
原文:http://www.imotaku.net/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20824.html
摘要:管道流原理強烈依賴函數(shù),我們先來了解下函數(shù)的使用。第二次迭代時,的值為上述返回的閉包偽代碼,的值為,返回一個閉包,當我們執(zhí)行這個閉包時,滿足,得到結(jié)果。自定義中間件為的管道流核心類在的方法中,為上述的閉包,為要通過的中間件數(shù)組,為對象。 Laravel管道流原理強烈依賴array_reduce函數(shù),我們先來了解下array_reduce函數(shù)的使用。 原標題PHP 內(nèi)置函數(shù) array_...
摘要:學習筆記之已經(jīng)聊過使用了來設(shè)計,看源碼發(fā)現(xiàn)其巧妙用了和的一些數(shù)組函數(shù)來設(shè)計。開發(fā)環(huán)境內(nèi)置函數(shù)和看源碼之前,先看下這幾個內(nèi)置函數(shù)的使用。學習筆記之實例化源碼解析已經(jīng)聊過的實例化,得到中的變量,即的實例化對象。后面再學習下的源碼,到時見。 說明:本文主要學習Laravel的Middleware的源碼設(shè)計思想,并將學習心得分享出來,希望對別人有所幫助。Laravel學習筆記之Decorato...
摘要:解析出后將進入應(yīng)用的請求對象傳遞給的方法,在方法負責處理流入應(yīng)用的請求對象并返回響應(yīng)對象。攜帶了本次迭代的值。通過這種方式讓請求對象依次流過了要通過的中間件,達到目的地的方法。 中間件(Middleware)在Laravel中起著過濾進入應(yīng)用的HTTP請求對象(Request)和完善離開應(yīng)用的HTTP響應(yīng)對象(Reponse)的作用, 而且可以通過應(yīng)用多個中間件來層層過濾請求、逐步完善...
摘要:直到所有中間件都執(zhí)行完畢,最后在執(zhí)行最后的即上述的方法如果上述有地方難懂的,可以參考這邊文章內(nèi)置函數(shù)在中的使用以上是在通過全局中間件時的大致流程,通過中間件和路由中間件也是一樣的,都是采用管道流操作,詳情可翻閱源碼 簡介 Laravel 中間件提供了一種方便的機制來過濾進入應(yīng)用的 HTTP 請求, 如ValidatePostSize用來驗證POST請求體大小、ThrottleReque...
摘要:必選規(guī)定被搜索的數(shù)組可選如果設(shè)置為,則在數(shù)組中檢查給定值的類型,默認是搜索數(shù)組中是否存在指定的值?;卣{(diào)函數(shù)接受的參數(shù)數(shù)目應(yīng)該和傳遞給函數(shù)的數(shù)組數(shù)目一致。 開發(fā)過程中經(jīng)常會使用到數(shù)組函數(shù),故特地總結(jié)出來,自己熟悉,同時供大家參考!(實例部分會抽空盡快完成) 一、目錄 array_merge(); 合并數(shù)組 array_keys(); array_filter(); in_array()...
閱讀 2787·2021-11-19 11:30
閱讀 3069·2021-11-15 11:39
閱讀 1793·2021-08-03 14:03
閱讀 1999·2019-08-30 14:18
閱讀 2055·2019-08-30 11:16
閱讀 2169·2019-08-29 17:23
閱讀 2611·2019-08-28 18:06
閱讀 2545·2019-08-26 12:22