繁体   English   中英

PHP Map:来回

[英]PHP Map: back-and-forth

考虑这个人为的例子。 如果我想将英语转换为西班牙语,以下数组可以正常工作。

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

echo $translate['one'];

但是,如何将西班牙语转换为英语? 可以使用关联数组来完成此操作吗,还是有更好的方法来做到这一点?

echo array_search ('uno', $translate);

但是,如果您想以其他方式翻译多个单词以重新映射数组,则可能会更快:

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

虽然您可以搜索数组,但键的值为O(n)而不是O(1)。 所以我会这样做:

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

如果列表很大,那么最好使用数据库来存储索引的两个列。

如果是一对一映射,则可以使用以下命令获取英语单词:

echo array_search("tres", $translate);

但是,如果是一对多的,则array_search将返回键(西班牙语)的数组,您必须以某种方式进行选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM