简体   繁体   中英

PHP Function to Reorder Array

Is there a PHP function to move an array key/value pair and make it to become the first element in the array.

Basically, I will like to convert

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

to

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

To clarify, the aim is to pick one specific key/value pair and move it to become the first indexed while keeping the rest of the order intact.

So in this case, I am looking for something like

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

In $new_array, 'c' should be first in the list.

Any ideas on code for 'some_func()'?

If you only want to put one element to first, then you could do:

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

This may helpful to you :

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

See it on codepad

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM