[英]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.