匹配2个数组并获取值

时间:2012-01-05 20:09:17

标签: php arrays

所以会有2个数组。一个是固定的:

$array1 =     "Animation" => "Animācija/Multfilmas",
"Multiplication" => "Animācija/Multfilmas",
"Action" => "Asa sižeta filmas",
"Detective" => "Detektīvs",
"Documentary" => "okumentālās filmas",
"Drama" => "Drāma",
"Adventure" => "Piedzīvojumu filmas",
"Comedy" => "Komēdija",
"Crime" => "Trilleris",
"Thriller" => "Trilleris",
"Fantasy" => "Fantastika / Sci-Fi",
"Sci-Fi" => "Fantastika / Sci-Fi",
"Family" => "Ģimenes filmas",
"History" => "Vēsturiskas filmas",
"Horror" => "Šausmu filmas",
"Musical" => "Mūzikls",
"Music" => "Mūzikls",
"Romance" => "Romantika",
"Mystery" => "Mistērija",
"Sport" => "Sports",
"Western" => "Vesterns",
"War" => "Kara filmas"

第二个每次都会包含不同的内容,让我给出两个随机的例子:

$array2 = "War", "Western", "Romance"

$array2 = "Comedy", "Drama"

好的,所以我的想法是制作一个将“喜剧”改为Komēdija等的功能(翻译) 如果最终有两个相同的值,那么就把它变成一个,因为犯罪和惊悚都被翻译成Trilleris,所以如果一部电影都有三种类型,它会显示为Trilleris,Trilleris曾经翻译过,那有点愚蠢。

2 个答案:

答案 0 :(得分:2)

function translate($words, $dictionary)
{
    $return = array();
    foreach($words as $word)
    {
        $return[ $dictionary[$word] ] = $dictionary[$word];
    }

    return $return;
}

$ dictionary是大数组,而$ words是包含要翻译的单词的数组

答案 1 :(得分:0)

您可以使用set数组上的Key值来查找和翻译需要翻译的数组。

$translated = array();

function translate($array){
    foreach($array as $arr){
        if(array_key_exists($arr, $array1){
           array_push($translated, $array1[$arr]);
        }
    }
}

var_dump($translated);

编辑:更改了array_push中的拼写错误