È possibile "change" the key of an array element semplicemente impostando la nuova chiave e la rimozione del vecchio che cambia:Change chiave array senza fine
$array[$newKey] = $array[$oldKey];
unset($array[$oldKey]);
Ma questo si muoverà la chiave per la fine della matrice.
C'è un modo elegante per cambiare la chiave senza cambiare l'ordine?
(PS:. Questa domanda è solo per interesse concettuale, non perché ne ho bisogno ovunque)
Immagino un qualche brutto costrutto con array_splice() e array_slice() farebbe il trucco –
@MarcB che però non funzionerebbe con le chiavi di stringa. – NikiC
Non sono un programmatore PHP, ma quali sono al mondo la semantica di '$ arr [$ oldKey]' se funziona come argomento per una funzione che rimuove '$ oldKey' da' $ arr'? Penso che PHP potrebbe essere più interessante di quanto pensassi in precedenza, dovrò esaminare questo ... –