Я новый пользователь, поэтому я надеюсь, что мой вопрос уважает сетевой этикет сайта.
Я работал с массивом, который мне нужен, чтобы манипулировать поддержкой ключей. Функция 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, вставить сам элемент в последнюю позицию массива, всегда сохраняя свой ключ.
$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;
}
}
Попробуйте это — работает для меня.
Других решений пока нет …