Ho 2 array.Elementi di array di dereference PHP
$result = array();
$row = array();
Gli elementi di riga sono tutti riferimenti e sono in costante cambiamento. Per ogni iterazione di $row
voglio copiare i valori di di riga in una voce di $result
e non i riferimenti.
Ho trovato alcune soluzioni ma sembrano tutte piuttosto orribili.
$result[] = unserialize(serialize($row));
$result[] = array_flip(array_flip($row));
Sia del lavoro di cui sopra, ma sembra come un sacco di codice inutile e brutto solo per copiare il contenuto di un array di riferimenti per valore, invece di copiare i riferimenti stessi.
Esiste un modo più semplice per raggiungere questo obiettivo? Se no, quale sarebbe il modo più efficace?
Grazie.
EDIT: Come suggerito di seguito qualcosa come:
function dereference($ref) {
$dref = array();
foreach ($ref as $key => $value) {
$dref[$key] = $value;
}
return $dref;
}
$result[] = dereference($row);
funziona anche, ma sembra altrettanto brutto.
questo potrebbe essere un duplicato, http://stackoverflow.com/questions/1190026/php-copying-array-elements -by-value-not-by-reference –
Si occupa di oggetti. Sto trattando rigorosamente con gli array. – anomareh
Se la gente ha messo in subboted la mia risposta, quindi hanno creduto che avessi ragione. Se non è il caso, allora molto probabilmente significa che non hai chiarito la tua domanda in un primo momento. Trovo piuttosto scortese da parte tua dire alle persone di non suggerire il mio tentativo di aiutarti, quindi non cercherò di approfondire ulteriormente. – zneak