$arr = array(
'a1'=>'1',
'a2'=>'2'
);
我需要将a2移到顶部,同时保持a2
作为关键字我该如何继续下去我似乎不能想出一种不搞乱的方法:)
发布于 2011-03-15 14:03:45
您可以通过以下方式来实现:
$arr = array(
'a1'=>'1',
'a2'=>'2'
);
end($arr);
$last_key = key($arr);
$last_value = array_pop($arr);
$arr = array_merge(array($last_key => $last_value), $arr);
/*
print_r($arr);
will output (this is tested):
Array ( [a2] => 2 [a1] => 1 )
*/
发布于 2011-10-07 12:24:44
下面是一个可以正确使用数字键和字符串键的解决方案:
function move_to_top(&$array, $key) {
$temp = array($key => $array[$key]);
unset($array[$key]);
$array = $temp + $array;
}
它之所以有效,是因为PHP中的数组是有序映射。
顺便说一句,要将一项移动到底部,请使用:
function move_to_bottom(&$array, $key) {
$value = $array[$key];
unset($array[$key]);
$array[$key] = $value;
}
发布于 2017-11-04 20:28:36
试试这个:
$key = 'a3';
$arr = [
'a1' => '1',
'a2' => '2',
'a3' => '3',
'a4' => '4',
'a5' => '5',
'a6' => '6'
];
if (isset($arr[ $key ]))
$arr = [ $key => $arr[ $key ] ] + $arr;
结果:
array(
'a3' => '3',
'a1' => '1',
'a2' => '2',
'a4' => '4',
'a5' => '5',
'a6' => '6'
)
https://stackoverflow.com/questions/5312879
复制