1

我有一组英文颜色,我想将其中一些翻译成法文,我没有找到标准的 PHP 函数来用其他值替换数组的某些值,所以我自己写了,但我正在寻找一个更简单的如果有的话!

我正在遍历englishColors 数组并检查是否有我想用法国颜色替换的颜色。

$englishColors = array("Black","Green","Red");

$frenshColors = array();
foreach ($englishColors as $color) {
    if ($color == "Black") {
        $frenshColors[] = "Noire";
        continue;
    }elseif ($color == "Red") {
        $frenshColors[] = "Rouge";
        continue;
    }
    $frenshColors[] = $color;
}

var_dump($frenshColors);
4

3 回答 3

3

使用数组。在索引中写下英文名称,值是法文名称。

$arrayAux = [
  'red' => 'rouge',
  'black' => 'noir',
];

然后,当您想要具有法国颜色的数组时:

$frenshColors = array();
foreach ($englishColors as $color) {
    if (array_key_exists($color, $arrayAux)) {
        $frenshColors[] = $arrayAux[$color];
    } else {
        $frenshColors[] = $color;
    }  
}
于 2020-12-30T12:28:43.940 回答
1

也许使用哈希表类型的数组?

$colors = [
    "Black" => "Noire",
    "Green" => "?",
    "Red" => "Rouge",
];

echo $colors["Black"]; // Noire

然后,如果你想相反,你可以:

$colors = array_flip($colors);
echo $colors["Noire"]; // Black
于 2020-12-30T12:22:24.927 回答
0

如果您只想替换数组中的值,请使用:array_replace

https://www.php.net/manual/en/function.array-replace.php

如果您想将整个网页翻译成GETTEXT https://www.php.net/manual/en/ref.gettext.php

于 2020-12-30T12:23:50.037 回答