我想将带有键的数组元素移动到数组的其他位置。
我的实际数组
Array
(
[24] => Birthday
[25] => Christmas
[26] => Congratulations
[27] => Halloween
[28] => Mothers Day
)
我想移动[25] => Christmas
元素,如下所示。
Array
(
[24] => Birthday
[26] => Congratulations
[27] => Halloween
[25] => Christmas
[28] => Mothers Day
)
答案 0 :(得分:2)
生活在ide1:http://ideone.com/yJ1e3N
使用uasort
在使用闭包使用自定义逻辑进行排序时保持键值关联:
$order = [
'Birthday' => 1,
'Congratulations' => 2,
'Halloween' => 3,
'Christmas' => 4,
'Mothers Day' => 5
];
uasort($array, function($a,$b) use ($order){
return $order[$a] > $order[$b];
});
使用此脚本,您可以通过为数组$order
分配正确的值来使用所需的任何自定义顺序逻辑。
如果您有许多元素,这也会非常快,因为使用key
数组的$order
来访问正确的顺序(而不是通过线性扫描)。
答案 1 :(得分:0)
如果要从表中获取数据,可以将另一列添加为order_column并指定该列中的顺序。然后修改您的选择查询,以便ORDER BY order_column。