php copiando elementos de matriz por valor, no por referencia

Tengo el siguiente código:

$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

Supongo que, dado que todos los elementos de $ data son referencias, la modificación de $ data ['y'] también modifica $ data ['x'] .. que NO es lo que quiero. Quiero que $ data ['x'] permanezca igual. ¿Hay alguna forma de desreferenciar los elementos aquí para que pueda copiar los elementos por valor?

Gracias.

Actualización: $ this-> x-> getResults (); devuelve una matriz de objetos. Entonces puedo hacer algo como: $ data ['x'] [0] -> date_create ...

Actualizar: mi último intento de clonar la matriz se ve algo así:

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

¿Estoy lejos de aquí? Sigo recibiendo un error "__clone method llamado on non-object". Al leer las respuestas, parece que mi mejor opción es iterar sobre cada elemento y clonarlo (que es lo que estaba tratando de hacer con ese código ...).

ACTUALIZAR: ¡Solo lo resolví !: dentro del bucle foreach solo necesitaba cambiar la línea a:

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

¡Y funciona! Gracias a todos por la ayuda.

Respuestas a la pregunta(6)

Su respuesta a la pregunta