1

この不自然な例を考えてみましょう。次の配列は、英語をスペイン語に変換する場合に正常に機能します。

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

echo $translate['one'];

しかし、どうすればスペイン語から英語に変換できますか?これは連想配列で行うことができますか、それともこれを行うためのより良い方法がありますか?

4

3 に答える 3

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

ただし、配列を再マップするために複数の単語を逆に翻訳する場合は、より高速になる可能性があります。

$translate_reverse = array_flip ($translate);
echo $translate_reverse ['uno'];
于 2012-05-15T17:51:00.657 に答える
2

配列を検索することはできますが、キーのO(1)ではなくO(n)です。だから私はこれをします:

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

膨大なリストがある場合は、データベースを使用して両方の列にインデックスを付けて保存することをお勧めします。

于 2012-05-15T17:54:27.283 に答える
1

1対1のマッピングの場合は、次を使用して英語の単語を取得できます。

echo array_search("tres", $translate);

ただし、1対多の場合、array_searchは、何らかの方法で選択する必要のあるキー(スペイン語)の配列を返します。

于 2012-05-15T17:52:06.460 に答える