In PHP, how do you change the key of an array element?

后端 未结 23 2640
逝去的感伤
逝去的感伤 2020-11-22 03:45

I have an associative array in the form key => value where key is a numerical value, however it is not a sequential numerical value. The key is actually an I

23条回答
  •  温柔的废话
    2020-11-22 04:28

    this works for renaming the first key:

    $a = ['catine' => 'cat', 'canine'  => 'dog'];
    $tmpa['feline'] = $a['catine'];
    unset($a['catine']);
    $a = $tmpa + $a;
    

    then, print_r($a) renders a repaired in-order array:

    Array
    (
        [feline] => cat
        [canine] => dog
    )
    

    this works for renaming an arbitrary key:

    $a = ['canine'  => 'dog', 'catine' => 'cat', 'porcine' => 'pig']
    $af = array_flip($a)
    $af['cat'] = 'feline';
    $a = array_flip($af)
    

    print_r($a)

    Array
    (
        [canine] => dog
        [feline] => cat
        [porcine] => pig
    )
    

    a generalized function:

    function renameKey($oldkey, $newkey, $array) {
        $val = $array[$oldkey];
        $tmp_A = array_flip($array);
        $tmp_A[$val] = $newkey;
    
        return array_flip($tmp_A);
    }
    

提交回复
热议问题