1

这是我到目前为止所拥有的:

$arrayPrices = array(
    translate($lang_type, "A/C System Evaluation") => "19.95",
    translate($lang_type, "A/C Evaluation & Recharge") => "99.00"
);

我的翻译功能是:

function translate($to_lan, $text) {
if($to_lan == "en") {

    return $text;

} else {

    $translate_feed = @file_get_contents('http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=' . BING_APPID . '&text=' . urlencode($text) . '&from=en&to=' . $to_lan . '');
    $translate = simplexml_load_string($translate_feed);

    return ($translate_feed === false) ? $text : $translate[0];
   }
 }

出于某种原因,我无法在我的 PHP 数组中显示该翻译功能。

如果我输入echo translate($lang_type, "A/C System Evaluation"); 它就可以正常工作并翻译。但是当在该数组中使用时,它只会返回空白。

有谁知道我能做什么?

4

3 回答 3

2

来自PHP 数组文档

键可以是整数或字符串。该值可以是任何类型。

首先将您的密钥放入字符串变量中,例如:

$var1 = translate($lang_type, "A/C System Evaluation");
$var2 = translate($lang_type, "A/C Evaluation & Recharge");

$arrayPrices = array(
    "$var1" => 19.95
    "$var2" => 29.95
);

那应该可以正常工作。

于 2012-04-12T23:28:49.617 回答
1

这个工作:

$arrayPrices[translate($lang_type, "A/C System Evaluation")]= "19.95";
$arrayPrices[translate($lang_type, "A/C Evaluation & Recharge")] = "99.00";
于 2012-04-12T23:29:24.290 回答
0

我认为您希望能够广泛地添加到该产品列表中,而不必大量使用临时变量。这是我在阵列上进行后处理运行的情况之一,如下所示:

$arrayPrices = array(
    "A/C System Evaluation" => "19.95",
    "A/C Evaluation & Recharge" => "99.00",
    // ... etcetera ...
);

$keys = array_keys( $arrayPrices );    
foreach( $keys as $keyText )
{
    $translatedKeyText = translate($lang_type, $keyText);
    if ( $translatedKey != $keyText )
    {
        $arrayPrices[$translatedKeyText] = $arrayPrices[$keyText];
        unset( $arrayPrices[$keyText] );
    }
}

如果您使用临时变量,则必须为原始数组的每个新条目添加逻辑。这对我来说听起来像是一个维护麻烦。

于 2012-04-12T23:46:27.510 回答