Ich habe 2 Arrays.PHP Dereferenz Array Elemente
$result = array();
$row = array();
Zeilenelemente sind alle Referenzen und werden ständig geändert. Für jede Iteration von $row
möchte ich die Werte der Zeile in einen Eintrag von $result
und nicht die Referenzen kopieren.
Ich habe ein paar Lösungen gefunden, aber sie scheinen alle ziemlich schrecklich.
$result[] = unserialize(serialize($row));
$result[] = array_flip(array_flip($row));
Sowohl die oben genannten Arbeiten scheinen aber wie viele unnötige und hässlich Code einfach den Inhalt eines Arrays der vom Wert zu kopieren, anstatt die Referenzen des Kopierens selbst.
Gibt es einen saubereren Weg, dies zu erreichen? Wenn nicht, was wäre der effizienteste Weg?
Danke.
EDIT: Wie unten etwas vorgeschlagen, wie:
function dereference($ref) {
$dref = array();
foreach ($ref as $key => $value) {
$dref[$key] = $value;
}
return $dref;
}
$result[] = dereference($row);
Auch scheint aber ebenso hässlich funktioniert.
Dies könnte ein Duplikat sein, http://stackoverflow.com/questions/1190026/php-copying-array-elements by-value-not-by-reference –
Er beschäftigt sich mit Objekten. Ich beschäftige mich streng mit Arrays. – anomareh
Wenn Leute meine Antwort auffrischten, dann glaubten sie, dass ich recht hatte. Wenn dies nicht der Fall ist, bedeutet dies höchstwahrscheinlich, dass Sie Ihre Frage zunächst nicht geklärt haben. Ich finde es ziemlich unhöflich an deinem Ende, den Leuten zu sagen, dass ich meinen Versuch, dir zu helfen, ablehnen soll, also werde ich es nicht weiter versuchen. – zneak