PHP函数重新排序数组

时间:2012-07-07 15:22:50

标签: php arrays

是否有PHP函数移动数组键/值对并使其成为数组中的第一个元素。

基本上,我想转换

Array
(
    [a] => rose
    [b] => tulip
    [c] => dahlia
    [d] => peony
    [e] => magnolia
)

Array
(
    [c] => dahlia
    [a] => rose
    [b] => tulip
    [d] => peony
    [e] => magnolia
)

为了澄清,目的是选择一个特定的键/值对并将其移动成第一个索引,同时保持订单的其余部分完整。

所以在这种情况下,我正在寻找像

这样的东西
$old_array = Array
    (
        [a] => rose
        [b] => tulip
        [c] => dahlia
        [d] => peony
        [e] => magnolia
    );
$new_array = some_func($old_array, 'c');

在$ new_array中,' c'应该是列表中的第一个。

有关' some_func()'?

的代码的任何想法

3 个答案:

答案 0 :(得分:2)

如果您只想将一个元素放在第一位,那么您可以这样做:

function some_func($array, $key) {
   $tmp = array($key => $array[$key]);
   unset($array[$key]);
   return $tmp + $array;
}

答案 1 :(得分:1)

这可能对您有所帮助:

function myfun($ar,$key){
    if (array_key_exists($key,$ar)) {
        $arr_tmp = array($key => $ar[$key]);
        unset($ar[$key]);
        return $arr_tmp + $ar;        
    }
}

答案 2 :(得分:1)

function some_func($arr, $key) {
    $val = $arr[$key];
    unset($arr[$key]);
    return array_merge(array($key => $val), $arr);
}

See it on codepad