2012-05-15 4 views
1

이 인위적인 예제를 고려해보십시오. 다음 배열은 영어를 스페인어로 변환하려는 경우 잘 작동합니다.PHP지도 : 앞뒤로

$translate = array('one' => 'uno', 
        'two' => 'dos', 
        'three' => 'tres' 
      ); 

echo $translate['one']; 

하지만 어떻게 스페인어에서 영어로 변환합니까? 연관 배열을 사용하여이 작업을 수행 할 수 있습니까? 아니면이 작업을 수행하는 더 좋은 방법이 있습니까?

+0

다른 연관 배열이 필요합니다. –

답변

3
echo array_search ('uno', $translate); 

그러나, 당신이 배열 매핑 주위에 여러 단어를 다른 방법으로 번역 할 경우 빠른 수 있습니다 : 그것은 일대일 대응 인 경우

$translate_reverse = array_flip ($translate); 
echo $translate_reverse ['uno']; 
1

을, 당신은 사용할 수 있습니다 하여 영어 단어를 얻기 위해 다음

echo array_search("tres", $translate); 

을하지만,이 일대의 경우, array_search은 어떻게 든 선택해야합니다 키의 (스페인어 단어)의 배열을 반환합니다.

2

배열을 검색 할 수 있지만 키의 O (1)와 반대로 O (n)입니다. 그래서 나는 이것을 할 것이다 :

$english_to_spanish = array('one' => 'uno', ...); 
$spanish_to_english = array_flip($english_to_spanish); 

거대한리스트가 있다면 인덱스 된 두 컬럼을 저장하기 위해 데이터베이스를 사용하는 것이 더 나을 것이다.

관련 문제