PHP Kopieren von Array-Elementen nach Wert, nicht nach Referenz

Ich habe folgenden Code:

$data['x'] = $this->x->getResults();  

$data['y'] = $data['x'];

//some code here to modify $data['y']
//this causes (undesirably) $data['x] to be modified as well

Ich denke, da alle Elemente von $ data selbst Referenzen sind, werden durch Ändern von $ data ['y'] auch $ data ['x'] geändert. Dies ist NICHT das, was ich möchte. Ich möchte, dass $ data ['x'] gleich bleibt. Gibt es eine Möglichkeit, die Elemente hier dereferenzieren, damit ich die Elemente nach Wert kopieren kann?

Vielen Dank.

Update: $ this-> x-> getResults (); gibt ein Objektarray zurück. Also kann ich dann so etwas machen wie: $ data ['x'] [0] -> date_create ...

Aktualisieren: Mein letzter Versuch, das Array zu klonen, sieht ungefähr so ​​aus:

   $data['x'] = $this->x->getResults();     
   $data['y'] = $data['y'];
   foreach($data['x'] as $key=>$row) {
       $data['y'][$key]->some_attr = clone $row->some_attr;
   }

Bin ich hier weg? Ich erhalte immer wieder den Fehler "__clone-Methode bei Nicht-Objekt aufgerufen". Nach dem Lesen der Antworten scheint es meine beste Option zu sein, jedes Element zu durchlaufen und es zu klonen (was ich mit diesem Code versucht habe).

AKTUALISIEREN: Habe es gerade gelöst !: In der foreach-Schleife musste ich nur die Zeile ändern zu:

$data['y'][$key] = clone $row;

Und es funktioniert! Vielen Dank an alle für die Hilfe.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage