Вы можете "change" the key of an array element просто установив новый ключ и удаление старого:Изменить ключ массива без изменения порядка
$array[$newKey] = $array[$oldKey];
unset($array[$oldKey]);
Но это будет переместить ключ к концу массива.
Есть ли элегантный способ изменения ключа без изменения порядка?
(PS:. Этот вопрос просто из концептуального интереса, а не потому, что мне это нужно где-нибудь)
Я бы предположил, что какая-то уродливая конструкция с array_splice() и array_slice() будет делать трюк –
@MarcB Это не работает со строковыми клавишами. – NikiC
Я не программист на PHP, но что в мире есть семантика '$ arr [$ oldKey]', если это работает как аргумент функции, которая удаляет '$ oldKey' из' $ arr'? Я думаю, что PHP может быть более интересным, чем я думал раньше, придется заглянуть в это ... –