Php使用字符串作为变量名print_r



我的场景如下,比如说我有两个数组$array_0$array_1,然后我想在while中更好地在for中打印它

for ($i=0;$i<=1;$i++){
print_r(array($array?));
} 

我应该如何声明要打印的数组我之前尝试过在变量中设置名称的字符串,但可能它缺少

for ($i=0;$i<=1;$i++){
$str_array='$array_'.$i;
print_r(array($str_array));
} 

但它打印出类似的东西

Array
(
[0] => $array_0
)
Array
(
[0] => $array_1
)

听起来像是在寻找变量。

$array_0 = ['foo'];
$array_1 = ['bar'];
for ($i = 0; $i <= 1; $i++) {
print_r(${'array_' . $i}); // Here we "build" the variable name
}

下面是一个演示:https://3v4l.org/PLApU

您可以在手册中阅读更多关于变量的信息:https://www.php.net/manual/en/language.variables.variable.php

您需要使用"可变变量";下面是一个例子:

$arr_1 = array(1=>'a', 2=>'b');
$arr_2 = array(1=>'c', 2=>'d', 3=>'e');
for($i=1; $i<=2; $i++){
$arrname = 'arr_'.$i;
print_r(${$arrname});
}

您可以使用$$arrname而不是${$arrname};然而,我发现后者更清楚地理解了正在发生的事情。

最新更新