【发布时间】:2014-11-16 18:50:43
【问题描述】:
我正在使用一个数组,我需要操纵它来维护密钥。不幸的是,我需要实现的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);
结果
array(4) {
["C"]=>
string(1) "O"
["D"]=>
string(1) "B"
[0]=>
string(1) "R"
[1]=>
string(1) "D"
}
如您所见,R 和 D 元素的键不是原来的键。您推荐什么替代解决方案来提取数组的第一个元素并保持键不变?
P.S:我的目标是提取数组的第一个元素(保留键),如果它不等于变量$position,则将元素本身插入数组的最后一个位置,始终保持其键.
【问题讨论】:
标签: php arrays rotation key shift