对我来说这看起来很有趣.但是你走了:
$test = array(
'bla' => 123,
'bla2' => 1234,
'bla3' => 12345
);
//store value of key we want to move
$tmp = $test['bla2'];
//now remove this from the original array
unset($test['bla2']);
//then create a new array with the requested index at the beginning
$new = array_merge(array('bla2' => $tmp), $test);
print_r($new);
输出如下:
Array
(
[bla2] => 1234
[bla] => 123
[bla3] => 12345
)
您可以将其转换为一个简单的函数,它接收一个键和一个数组,然后输出新排序的数组.
UPDATE
我不确定为什么我没有默认使用uksort,但你可以做得更清洁一点:
$test = array(
'bla' => 123,
'bla2' => 1234,
'bla3' => 12345
);
//create a function to handle sorting by keys
function sortStuff($a, $b) {
if ($a === 'bla2') {
return -1;
}
return 1;
}
//sort by keys using user-defined function
uksort($test, 'sortStuff');
print_r($test);
这将返回与上面代码相同的输出.