I have 2 arrays.
$result = array();
$row = array();
Row's elements are all references and is constantly changing. For each iteration of $row
I want to copy the values of row into an entry of $result
and not the references.
I have found a few solutions but they all seem rather awful.
$result[] = unserialize(serialize($row));
$result[] = array_flip(array_flip($row));
Both of the above work but seem like a lot of unnecessary and ugly code just to copy the contents of an array of references by value, instead of copying the references themselves.
Is there a cleaner way to accomplish this? If not what would the most efficient way be?
Thanks.
EDIT: As suggested below something such as:
function dereference($ref) {
$dref = array();
foreach ($ref as $key => $value) {
$dref[$key] = $value;
}
return $dref;
}
$result[] = dereference($row);
Also works but seems equally as ugly.