当然,使用和如果使用容器实现来派生对象只是一种更智能的语义方式来实现这一点?array_map
ArrayAccess
数组映射语义在我见过的大多数语言和实现中都是相似的。它旨在返回基于输入数组元素的修改数组(高级忽略语言编译/运行时类型首选项);循环旨在执行更多逻辑。
为了按ID / PK检索对象,根据您是否使用SQL(似乎建议),我会使用过滤器来确保我获得有效PK的数组,然后用逗号内爆并放入SQL子句中以返回结果集。它通过SQL进行一次调用而不是多次调用,从而优化了一些周期。最重要的是,我的代码可以很好地阅读任何具有一定能力的语言的人,并且我们不会遇到可变性问题。IN()
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