0

配列のキーと値のペアを移動して配列の最初の要素にする PHP 関数はありますか。

基本的に、私は変換したい

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

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

明確にするために、目的は、特定のキーと値のペアを 1 つ選択し、それを移動して、残りの順序をそのまま維持しながら最初にインデックス付けされるようにすることです。

したがって、この場合、次のようなものを探しています

$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()」のコードに関するアイデアはありますか?

4

3 に答える 3

2

1 つの要素だけを最初に配置する場合は、次のようにします。

function some_func($array, $key) {
   $tmp = array($key => $array[$key]);
   unset($array[$key]);
   return $tmp + $array;
}
于 2012-07-07T15:26:49.550 に答える
1

これはあなたに役立つかもしれません:

function myfun($ar,$key){
    if (array_key_exists($key,$ar)) {
        $arr_tmp = array($key => $ar[$key]);
        unset($ar[$key]);
        return $arr_tmp + $ar;        
    }
}
于 2012-07-07T15:39:36.683 に答える
1
function some_func($arr, $key) {
    $val = $arr[$key];
    unset($arr[$key]);
    return array_merge(array($key => $val), $arr);
}

コードパッドで見る

于 2012-07-07T15:55:38.913 に答える