簡體   English   中英

數組內部的PHP函數?

[英]PHP Function Inside of An Array?

這是我到目前為止:

$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"); 它工作正常並翻譯。 但是當在該數組中使用時,它只返回空白。

有誰知道我能做什么?

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
);

這應該工作正常。

這工作:

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

我認為你希望能夠廣泛地添加到該產品列表中,而不必大量使用臨時變量。 這是我在數組上進行后處理運行的情況之一,如下所示:

$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] );
    }
}

如果使用臨時變量,則必須為原始數組的每個新條目添加邏輯。 這對我來說聽起來像是一個維護麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM