Перевод строки из массива, str_replace? - PullRequest
0 голосов
/ 22 марта 2011

Перевод строки из массива, str_replace?

У меня есть массив

 $money = array(
    "USD"=>100,
    "BAT"=>1000,
    "RIEL"=>2000
    );

И я определяю как константу для перевода:

define("const_infor","Your __TYPE__ are:  __AMOUNT__  __CURRENCY__ .<br><br>");

Плохие ПУТИ:

  echo "Your balance are :";//more constant here
  foreach ($money as $currency=>$amount){
      echo $money.$currency."; ";
  }

Я пытаюсь вывести (ХОРОШИЕ ПУТИ):

  $tmp1 = "";
  $tmp2 = "";
  foreach ($money as $currency=>$amount){
    $tmp1 .= $money;
    $tmp2 .= $currency;
  }
echo str_replace(ARRAY("__TYPE__","__AMOUNT__","__CURRENCY__"),ARRAY("Balance",$tmp1,$tmp2),const_infor); 

НО, что я хочу, это вывод должен быть:

Your Balance are: 100 USD; 1000 BAT; 2000 RIEL

Как я могу передать $currency. до str_replace?

Любой может помочь мне сделать это .?

Ответы [ 3 ]

1 голос
/ 22 марта 2011

Ну, ниже приведен просто вид парсера для выполнения того, что вы хотите .. Попробуйте и посмотрите, соответствует ли он вашим потребностям:

function replace($string, $name = '', $value = '')
{
   if ( !empty($name) )
   {
      str_replace('{'.$name.'}', $value, $string);
   }
}


$string = 'Your balance is {bal1} USD, {bal2} BAT';

$string = replace('bal1', $money['USD'], $string);
$string = replace('bal2', $money['BAT'], $string);
$string = replace('bal3', $money['GBP'], $string);

print $string;
1 голос
/ 22 марта 2011

Я не знаю, что именно вы хотите сделать, но если это только вывод, попробуйте

printf("Your Money %f %f %f", $money["USD"], $money["BAT"], $money["RIEL"]);
0 голосов
/ 22 марта 2011

попробуйте это:

foreach ($money as $key => $cur)
  echo $cur.' '. $key;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...