如何通过循环来做到这一点?

时间:2013-08-31 20:24:27

标签: php

如何通过for循环执行此操作?我想根据它们在数组中的存在来设置变量......

if (isset($sort[3])) $c = 3; 
if (isset($sort[4])) $d = 4; 
if (isset($sort[5])) $e = 5; 
if (isset($sort[6])) $f = 6; 
if (isset($sort[7])) $g = 7; 
if (isset($sort[8])) $h = 8; 
if (isset($sort[9])) $i = 9; 
if (isset($sort[10])) $j = 10; 
if (isset($sort[11])) $k = 11; 
if (isset($sort[12])) $l = 12; 
if (isset($sort[13])) $m = 13; 
if (isset($sort[14])) $n = 14; 
if (isset($sort[15])) $o = 15; 

1 个答案:

答案 0 :(得分:4)

有趣的是,这实际上可以在PHP中完成,因为PHP允许您使用$"$<variable_name>"表示法在运行时命名变量。

for ($i = 3; $i <= 15; $i++) {
    if (isset($sort[$i])) {
        $varName = chr(ord ("a") + ($i - 1));
        $$varName = $i
    }
}

说明:在PHP中,您可以use strings as variable names。要获得正确的字母,首先使用ord计算正确的ASCII值,将其移动$i - 1,然后使用{{将ASCII值转换为字符串来获取所需的字符3}}

虽然可以在PHP中执行此操作,但我不一定会推荐它。从字母表到适当的值有一个数组/映射会更好。