3 回答
TA貢獻1796條經驗 獲得超7個贊
當然使用array_map(如果使用實現容器的容器ArrayAccess來派生對象)僅僅是一種更聰明的語義方法嗎?
我所看到的大多數語言和實現中的數組映射語義都相似。它旨在根據輸入數組元素返回修改后的數組(高級忽略語言編譯/運行時類型首選項);循環意味著執行更多的邏輯。
為了通過ID / PK檢索對象,具體取決于您是否使用SQL(似乎建議使用),我將使用過濾器來確保獲得有效PK的數組,然后使用逗號爆破并放入SQL IN()子句中以返回結果集。它通過SQL進行一次調用而不是多次調用,從而優化了整個call->wait周期。最重要的是,我的代碼對于具有某種能力的任何語言的人都可以很好地理解,并且我們不會遇到可變性問題。
<?php
$arr = [0,1,2,3,4];
$arr2 = array_map(function($value) { return is_int($value) ? $value*2 : $value; }, $arr);
var_dump($arr);
var_dump($arr2);
與
<?php
$arr = [0,1,2,3,4];
foreach($arr as $i => $item) {
$arr[$i] = is_int($item) ? $item * 2 : $item;
}
var_dump($arr);
如果您知道自己在做什么,就永遠不會有變異性問題(如果打算改寫,請牢記,您$arr始終$arr = array_map可以做到明確。
- 3 回答
- 0 關注
- 423 瀏覽
添加回答
舉報
