PHP 中按元素轉換的效能比較:Foreach、使用Lambda 的映射和使用靜態函數的映射
問題
將一個陣列轉換為另一個陣列是一個常見的任務PHP。三種常用的方法是 foreach 迴圈、有 lambda 函數的 array_map 和帶有靜態函數的 array_map。了解這些方法之間的效能差異非常重要,以便在選擇最合適的解決方案時做出明智的決策。
方法
我們使用 PHP 腳本執行了基準測試,該腳本將 1000 個數字乘以 10 得到的數組。該腳本在使用和不使用Xdebug 的情況下運行以獲得準確的性能
結果
使用Xdebug
Approach | Time |
---|---|
Foreach | 0.792325 seconds |
Map with Lambda | 4.108242 seconds |
Map with Static Function | 1.788457 seconds |
不使用Xdebug
Approach | Time |
---|---|
Foreach | 0.698307 seconds |
Map with Lambda | 0.785845 seconds |
Map with Static Function | 0.851253 seconds |
觀察
其他方法
另一個值得考慮的方法是使用自訂函數來取代 lambda 函數對於陣列對應。儘管特定用例需要基準測試,但這可能會提高某些場景中的效能。
選擇最適合的方法
首選方法取決於以下因素:
以上是哪一種 PHP 陣列轉換方法最快:`foreach`、使用 Lambda 的 `array_map` 還是使用靜態函數的 `array_map`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!