php使用数组作为数组的索引

时间:2011-09-28 15:26:58

标签: php arrays

如果我有数组$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)

3 个答案:

答案 0 :(得分:2)

我不知道这有多高效,但它确实有用。

$translated = array_values(array_intersect_key($dictionary, array_flip($words)));

答案 1 :(得分:0)

您是在谈论使用键数组的something like this和使用其他值的数据吗?

$translated = array_combine($words, $dictionary);

答案 2 :(得分:0)

看起来我原来的解决方案或多或少效率最高。