如果我有数组$dictionary
和数组$words
,我如何使用数组($words
)来索引另一个数组($dictionary
)?
我能想到的最简单的是:
function dict_dispatch($word,$dictionary) {
return $dictionary[$word];
}
$translated = array_map('dict_dispatch', $words,
array_fill(0, count($words), $dictionary));
e.g。
例如:
$dictionary = array("john_the_king"=>"John-The-King", "nick_great"=>"Nick-Great-2001");
$words=array("john_the_king","nick_great");
$translated = <??>
assert($translated==array("John-The-King","Nick-Great-2001"));
请注意,$ dictionary可能非常大,如果此操作尽可能快,那将非常好(这就是为什么我不首先使用foreach)
答案 0 :(得分:2)
我不知道这有多高效,但它确实有用。
$translated = array_values(array_intersect_key($dictionary, array_flip($words)));
答案 1 :(得分:0)
您是在谈论使用键数组的something like this和使用其他值的数据吗?
$translated = array_combine($words, $dictionary);
答案 2 :(得分:0)
看起来我原来的解决方案或多或少效率最高。