Puede "change" the key of an array element simplemente mediante el establecimiento de la nueva clave y la eliminación de la antigua cambiante:Cambio clave de la matriz sin fin
$array[$newKey] = $array[$oldKey];
unset($array[$oldKey]);
Pero esto va a mover la llave de la final de la matriz.
¿Hay alguna forma elegante de cambiar la llave sin cambiar el orden?
(PS:. Esta pregunta es sólo por interés conceptual, no porque lo necesite en cualquier lugar)
Imagino que algún constructo feo con array_splice() y array_slice() haría el truco –
@MarcB Aunque eso no funcionaría con las claves de cadena. – NikiC
No soy un programador PHP, pero ¿qué hay en el mundo con la semántica de '$ arr [$ oldKey]' si esto funciona como un argumento para una función que elimina '$ oldKey' de' $ arr'? Creo que PHP podría ser más interesante de lo que creía, tendrá que investigar esto ... –