【发布时间】:2011-01-22 12:59:02
【问题描述】:
我有 2 个数组。
$result = array();
$row = array();
Row 的元素都是引用并且是不断变化的。对于$row 的每次迭代,我想将行的值 复制到$result 的条目中,而不是引用。
我找到了一些解决方案,但它们看起来都很糟糕。
$result[] = unserialize(serialize($row));
$result[] = array_flip(array_flip($row));
上述两种方法都有效,但似乎是很多不必要且丑陋的代码,只是为了按值复制引用数组的内容,而不是复制引用本身。
有没有更简洁的方法来实现这一点?如果不是,最有效的方法是什么?
谢谢。
编辑:如下所示:
function dereference($ref) {
$dref = array();
foreach ($ref as $key => $value) {
$dref[$key] = $value;
}
return $dref;
}
$result[] = dereference($row);
同样有效,但看起来同样丑陋。
【问题讨论】:
-
他在处理对象。我正在严格处理数组。
-
“复制”是什么意思?您所说的应该避免哪种“参考”?
标签: php arrays reference dereference