$arr = array(
'a1'=>'1',
'a2'=>'2'
);
我需要将A2移至顶部,并保留
a2
作为关键,我如何继续我,我似乎无法在不弄乱某些东西的情况下思考:)
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;
}
您可以这样做到这一点:
trone this:
$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'
)
这里是一个简单的一个衬里,可以用
array_splice()
和
$arr = array('a1'=>'1', 'a2'=>'2', 'a3' => '3');
$arr = array_splice($arr,array_search('a2',array_keys($arr)),1) + $arr;
Edit:回顾期,我不确定为什么我不仅会这样做:
$arr = array('a2' => $arr['a2']) + $arr;
清洁剂,更容易且可能更快。
您还可以查看
array_multisort这使您可以使用一个数组对另一个数组进行排序。 例如,这可以允许您将值的硬编码顺序外部化到配置文件中。
<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
?>