php copiando elementos da matriz por valor, não por referência

Eu tenho o seguinte 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

Eu acho que já que todos os elementos de $ data são referências, modificar $ data ['y'] também modifica $ data ['x'] .. que NÃO é o que eu quero. Eu quero que $ data ['x'] permaneça o mesmo. Existe alguma maneira de desreferenciar os elementos aqui para que eu possa copiar os elementos por valor?

Obrigado.

Atualização: $ this-> x-> getResults (); retorna uma matriz de objetos. Então eu posso fazer algo como: $ data ['x'] [0] -> date_create ...

Atualizar: minha última tentativa de clonar o array é algo como isto:

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

Eu estou fora daqui? Eu continuo recebendo o erro "__clone method called on non-object". A partir da leitura das respostas parece que a minha melhor opção é fazer uma iteração sobre cada elemento e cloná-lo (que é o que eu estava tentando fazer com esse código ..).

ATUALIZAR: Só resolvi isso !: dentro do loop foreach eu só precisava mudar a linha para:

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

E isso funciona! Obrigado a todos pela ajuda.

questionAnswers(6)

yourAnswerToTheQuestion