Alcune volte ho bisogno di modificare una chiave di array per esempio qualcosa di simile:
$temp = array();
foreach($arrayIWantToModify as $key => $value) {
if($value % 2) == 0) {
$temp['odd_' . $key] = $value;
} else {
$temp[$key] = $value;
}
}
Uso sempre un array temporaneo per ottenerlo, ma ho riscontrato un problema di memoria durante il lavoro su un progetto con alcuni array di grandi dimensioni. Ovviamente la soluzione migliore è aumentare la memoria ma, mi stavo solo chiedendo, è così brutto farlo come:
foreach($arrayIWantToModify as $key => $value) {
if(($value % 2) == 0) {
$arrayIWantToModify['odd_' . $key] = $value;
unset($arrayIWantToModify[$key]);
}
}
Sembra funzionare ma l'ho sempre visto come una cattiva pratica perché stai modificando un array che stai iterando.