2010-12-15 7 views
4

J'ai un tableau commeArray PHP changement clé

$arr = array('key1' => 'hello'); 

Maintenant, je dois changer la clé, est-il pour cela que je peux obtenir ce

Je sais que je peux le faire de cette façon:

$arr['key2'] = $arr['key1']; unset($arr['key1']); 

Mais, y a-t-il un autre moyen?

+1

Je pense que la méthode copier/supprimer est la meilleure. – Phil

+1

Je ne pense pas qu'il existe, mais quel est le problème avec la méthode dans votre question? – AgentConundrum

+0

c'est à peu près tout. – yoda

Répondre

1

Si vous étiez un peu fou, vous pouvez écrire une fonction.

function changeKey(array $array, $oldKey, $newKey) { 

    if (! array_key_exists($array, $oldKey)) { 
     return $array; 
    } 

    $array[$newKey] = $array[$oldKey]; 
    unset($array[$oldKey]); 
    return $array; 
} 

Ceci ne fera rien si la clé d'origine n'est pas présente. Il écrase également les clés existantes.

+0

merci alex, et s'il vous plaît vérifier le lien qui est fourni par Ben , c'est sympa –

+0

@IMJM J'utilise PHP depuis des années et je n'ai jamais eu de problème avec l'échange de clés. – alex

+0

moi aussi en utilisant PHP depuis 7 ans, mais cette fois je suis en train d'éditer le code de quelqu'un, qui est mal écrit, donc pas d'autre choix, mais merci encore pour l'aide –

3

La façon dont vous l'avez fait est la bonne façon. Vous ne pouvez pas modifier une clé dans un tableau associatif. Vous pouvez uniquement ajouter ou supprimer des clés. Si vous avez besoin de nombreuses «modifications clés», vous devrez peut-être prendre du recul et évaluer si vous utilisez la structure de données la plus appropriée pour votre problème.

+1

merci pour le commentaire –