2010-12-15 5 views
4

내가PHP 배열 키 변경

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

같은 배열이 지금은 키 변경할 필요가 있고, 거기에 어떤 내가 달성 할 수 왜 내가 이런 식으로 할 수있는 알이

:

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

하지만 다른 방법이 있습니까?

+1

복사/삭제 방법이 가장 좋다고 생각합니다. – Phil

+1

나는 거기에 있다고 생각하지 않지만, 귀하의 질문에이 방법에 무엇이 문제가 있습니까? – AgentConundrum

+0

꽤 많이 있습니다. – yoda

답변

1

을 한 일 것 같네요.

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

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

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

원래 키가 없으면 아무 것도 수행하지 않습니다. 또한 기존 키를 덮어 씁니다.

+0

감사합니다. alex. Ben이 제공 한 링크를 확인하십시오. , 좋은데 –

+0

@IMJM 나는 수년간 PHP를 사용해 왔으며 키를 바꿀 수있는 해결책을 찾지 못했다. – alex

+0

나도 7 년 동안 PHP를 사용하고 있지만 이번에는 나쁘게 작성된 다른 사람의 코드를 편집 중이므로 다른 선택의 여지가 없지만 여전히 도움을 주신 덕분에 –

3

당신이해온 방식이 올바른 방법입니다. 연관 배열에서는 키를 수정할 수 없습니다. 키만 추가하거나 제거 할 수 있습니다. 많은 "핵심 수정 사항"이 필요하다고 생각되면 문제를 해결하는 데 가장 적합한 데이터 구조를 사용하고 있는지 평가해야합니다.