如何轻松找到与动态字符串变量相对应的变量总和?

时间:2018-08-09 10:15:52

标签: php

我完全不知道如何以编程方式完成任务。

我有一个动态更改的alpha字符串变量,名为$ string。我为字母表中的每个字母设置了相应的值。我需要能够根据$ string变量中的字母自动计算$ total_string_length的值。

select txnid as txnid, date as transactiondate, amount as amount from transationdetails union all select txnid as txnid, date as transactiondate, amount as amount from transationdetails_backup;

如何轻松替换相应的字母字符变量值以找到$ total_string_length?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

PHP可以使用动态变量名。

$string = "jack";

$A_length = 1000;
$B_length = 500;
$C_length = 200;
$D_length = 1000;
$E_length = 1400;
$F_length = 100;
$G_length = 5000;
$H_length = 2000;
$I_length = 600;
$J_length = 8000;
$K_length = 8000;

$output = 0;
for($i = 0; $i < strlen($string); $i++) {
    $varName = strtoupper($string[$i]) . "_length";
    $output += $$varName; // notice the double `$` charaters
}

echo $output;

在上面的代码片段中,$varName变量的值是我们要从中获取数字的变量的名称。如果$varNameA_length,则$$varName等效于$A_length

但是,最好将数字存储在数组中,而不要存储在单独的变量列表中。

答案 1 :(得分:0)

对PHP的了解不多,但是在Java中,我们可以执行以下操作:

  1. 创建一个大小为26(字母中的字母数)的整数数组,并根据其索引即

    加载每个变量的第一个字符的长度值。
    ?next=%2Fadmin%2F
  2. 遍历字符串的字符并获得如下所述的值:

    intArr[(int)"A_length".charAt(0) - 65] = 1000;