Предположим, у меня есть этот ассоциативный массив:
$fruits = array(
'red' => 'strawberry',
'blue' => 'banana',
'green' => 'apple',
);
Я хочу изменить ключ blue
на yellow
. Обратите внимание, что я хочу изменить ключ, а не значение. Я мог бы сделать это:
$fruits['yellow'] = $fruits['blue'];
unset($fruits['blue']);
Но это приводит к тому, что 'yellow' => 'banana'
оказывается в конце массива. Если мне нужно сохранить порядок массива, чтобы 'yellow' => 'banana'
находился в той же позиции, что и 'blue' => 'banana'
раньше, как мне это сделать?
Конечно, я могу восстановить весь массив, добавив все пары ключ/значение и просто вставив ключ yellow
вместо blue
, но это кажется довольно медленным способом.
Есть ли более умный/более эффективный (предпочтительно собственный PHP) подход к этому, чтобы сделать это на месте?
implode(' ',$fruits)
, я всегда получаю один и тот же результат, то есть"strawberry banana apple"
в таком порядке. - person RocketNuts   schedule 28.04.2016