Php数组将元素移动到具有键值对的另一个位置

时间:2015-01-28 12:25:05

标签: php

我想将带有键的数组元素移动到数组的其他位置。

我的实际数组

  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         
    )

2 个答案:

答案 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。