arrays — Альтернативная функция для array_shift (), которая поддерживает ключи

Я новый пользователь, поэтому я надеюсь, что мой вопрос уважает сетевой этикет сайта.

Я работал с массивом, который мне нужен, чтобы манипулировать поддержкой ключей. Функция array_shift (), которую мне нужно реализовать, к сожалению, не поддерживает ключи обработанных объектов массива. Пожалуйста, посмотрите пример кода ниже:

    $rotor = array ("A" => "R", "B" => "D", "C" => "O", "D" => "B");

$position = "C";

foreach ($rotor as $key => $value) {
if($key != $position) {
$temp = array_shift($rotor);
array_push($rotor, $temp);
} else {
break;
}
}

var_dump($rotor);

/*Result

array(4) {
["C"]=>
string(1) "O"["D"]=>
string(1) "B"[0]=>
string(1) "R"[1]=>
string(1) "D"}*/

Как видите, ключи элементов R и D не являются оригинальными. Какое альтернативное решение вы порекомендуете для извлечения первого элемента массива без изменения ключа?

Благодарю.

П.С .: Моя цель — извлечь первый элемент массива (сохраняя ключ), и, если он не эквивалентен переменной $ position, вставить сам элемент в последнюю позицию массива, всегда сохраняя свой ключ.

0

Решение

$rotor = array ("A" => "R", "B" => "D", "C" => "O", "D" => "B");
$position = "C";

foreach ($rotor as $key => $value) {
if($key != $position) {
array_shift($rotor);
$rotor += array($key=>$value);
} else {
break;
}
}

Попробуйте это — работает для меня.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]