通过在 PHP 中连接两个字符串变量来访问数组索引中的问题


Issue in access array Index by concatenating two string variables in PHP

我正在尝试通过连接两个字符串变量来访问数组索引。假设有:

$val1 = 2;
$val2 = 12;
$val3 = 1012;

我在这里运行一个循环来计算上述变量的所有字符串长度,并访问这些变量索引。

以下是我的PHP代码:

$val1 = 2;
$val2 = 12;
$val3 = 1012;
for($i=1; $i<=3; $i++){
    $count = 0;
    $valLength = strlen($val . $i);  // this gives me $val1 Length i.e "1"
    echo $valLength;exit;
    for($j=0; $j<$valLength; $j++){
        if($valLength==1){
            $count = "";
            echo $count; echo $val . $i[$j];exit; // This is where the problem is  echoes nothing 
            continue;
        }
        if($val . $i[$j]==0){$count = "";}
        if($val . $i % $val . $i[$j] == 0){
            $count++;
        }
    }
    echo $count."'n";
}

如您所见,我无法使用此$val . $i[$j]访问变量的索引有没有其他方法可以访问它,或者我的连接语法不正确,请建议。

$valLength = strlen($val . $i);  // this gives me $val1 Length i.e "1"

不,它没有。这样做是连接$val的值(不存在且null,激活错误报告以查看弹出的通知)和$i1)。null . 1的结果是字符串"1""1"strlen1.

有许多可能的方法可以使这些变量工作,但长话短说:使用数组!

$vals = array(
    1 => 2,
    2 => 12,
    3 => 1012
);
for ($i ..) {
    $vals[$i]
}
// or even:
foreach ($vals as $key => $value) ..

我认为你需要得到的只是变量变量。

echo ${"val{$i}"}

演示